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]; //디바이스를 가져오기 위한 배열(...