3월, 2015의 게시물 표시

Frist OpenCL example on Windows

이제 OpenCL 예제 프로그램을 작성하여 보자. 작성하기전 알아야 될 개념은 OpenCL은 가용한 자원들의 집합이 추상화된 platform 과 platform안에 연산유닛이 추상화된 device 라는 개념이 있다. 가용한 platform은 OpenCL에서 사용할수 있도록 알맞은 드라이버가 설치되어 있어야한다. NVidia 그래픽 카드의 경우 CUDA를 설치하면 드라이버가 설치된다. Intel CPU의 경우는 intel opencl 로 구글링하면 " Intel Developer zone " 이 리스팅되는데 이곳( https://software.intel.com/en-us/articles/opencl-drivers )에서 본인에게 알맞은 드라이버를 다운로드 하면 CPU자원을 이용할 수 있다. 실제 C로 작성되는 프로그램은 host 라고 부르며, 병렬로 처리되는 함수를 kernel 이라고 한다. kernel은 C언어에 OpenCL의 예약어를 이용하여 작성할 수 있다. 성격 급하니 이론보다 코딩부터 해보자. 먼저 내가 사용할 수 있는 연산자원이 얼마나 있는지 확인하여 보자. (예제 프로그램은 구글링한 결과를 참고하여 작성하였다. - 출처불명) host 프로그램 예제(getinfo.c) #include <stdio.h> #include <stdlib.h> #include <CL/cl.h> int main() { unsigned int i, j; //플랫폼을 가져오기 위한 배열(실제로는 포인터사용후 메모리 할당 해야함) cl_platform_id platforms[32]; // 플랫폼의 갯수를 저장하기위한 변수 cl_uint num_platforms; // 벤더이름. 1024바이트를 넘지 않았으면 한다. char vendor[1024]; //디바이스를 가져오기 위한 배열(

Starting OpenCL with MinGW on Windows

이종병렬 프로그래밍에 사용되는 OpenCL 윈도우OS에서 컴파일/실행하기 위해서는  1. NVidia 홈페이지의 CUDA 존에서 툴킷을 다운로드 한다. Windows 8 64비트 용 파일이름은 cuda_6.5.14_windows_notebook_64 이다. 설치는 간단하다. 다음다음 하면 설치된다. 2. 컴파일 하기 위한 환경을 구성해야한다. 윈도우의 경우 VisualStudio Express, MinGW, cygwin 을 이용할 수 있다.  여기서는 MinGW를 설치하였다.(MinGW와 cygwin 의 차이점은 linux환경을 완벽하게 호환되게하는지 안하는지이다.)  MinGW를 검색해서 MinGW installer 설치후 msys, 컴파일러 등 선택하여 설치한다. 설치는 가급적 c: 드라이브 아래 MinGW 폴더로 하길 권장한다. program files 같은곳은 빈칸 때문에 사용할때 불편을 겪을수 있다. 설치가 끝나면 MinGW아래 msys 아래 버전폴더가 있다. 그 속에 보면 msys 배치파일이 있는데 실행하기전 MinGW의 위치를 마운트해주어야 한다. etc 아래 fstab 파일(없으면 생성한다)안에 아래와 같이 적어준다. C:\MinGW   /mingw 배치파일을 실행하여 컴파일러가 동작하는 확인한다. 3. 이제 OpenCL 예제 프로그램을 작성하여 실행해보자