병렬 컴퓨팅을 이야기할 때 GPGPU와 함께 화두에 오르는 OpenCL에 대해 알아봅시다
OpenCL(Open Computing Language)은 개방형 범용 병렬 컴퓨팅 프레임워크이다.
CPU, GPU, DSP*** 등의 프로세서로 이루어진 이종 플랫폼에서 실행되는 프로그램을 작성할 수 있게 해 준다. OpenCL은 커널 코드를 작성하기 위한 C99 기반의 언어인 OpenCL C와 플랫폼을 정의하고 제어하기 위한 API를 포함하고 있다.
OpenCL은 작업 기반(task-based) 및 데이터 기반(data-based) 병렬 컴퓨팅을 제공한다.
OpenCL이 만들어진 이유는 OpenGL이나 OpenAL이 만들어진 이유와 비슷하다. OpenGL과 OpenAL은 각각 3차원 컴퓨터 그래픽스 및 컴퓨터 오디오에 대한 산업계의 개방형 표준이다. OpenCL은 비영리 기술 컨소시엄인 크로노스 그룹(Khronos Group)에서 관리하고 있다.
OpenCL은 애플이 최초로 개발했으며 OpenCL의 상표권도 애플이 가지고 있다.
그 후 AMD, 인텔, 엔비디아 등과 함께 애플은 문서를 다듬어 최초의 제안서(proposal)를 크로노스 그룹에 제출하였다. 2008년 6월 16일 크로노스 컴퓨트 워킹 그룹(Khronos Compute Working Group)이 결성되었다. 크로노스 컴퓨트 워킹 그룹에는 CPU, GPU, 임베디드 프로세서, 소프트웨어 업체들이 참여하였다.
OpenCL 명세서는 크로노스에서 개발 중이며, 관심 있는 어떤 회사에라도 개방되어 있다.
***DSP
디지털 신호 처리 장치 (digital signal processor, DSP)는 디지털 신호 처리를 위해 특별히 제작된 마이크로프로세서로 특히 실시간 운영 체제 계산에 사용된다
출처 : 위키피디아
'Computer Graphics' 카테고리의 다른 글
VBO(Vertex Buffer Object) 버텍스 버퍼 오브젝트란 (0) | 2014.02.18 |
---|---|
지오데식 돔이란(geodesic dome) 지오데식 돔 2V (2) | 2014.02.11 |
CUDA란 CUDA 병렬 프로그래밍 CUDA 병렬 처리 (0) | 2014.01.16 |
컴퓨터 그래픽스 GPU GPGPU (0) | 2014.01.15 |
OpenGL 광원 조명 질감 설정 (0) | 2014.01.14 |