Computer Graphics

OpenCL이란

익플루 2014. 1. 22. 18:05
반응형

병렬 컴퓨팅을 이야기할 때 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)는 디지털 신호 처리를 위해 특별히 제작된 마이크로프로세서로 특히 실시간 운영 체제 계산에 사용된다

  • 실시간 처리를 위한 설계
  • 최적의 데이터 스트리밍
  • 프로그램과 데이터 메모리를 분리 (하버드 아키텍처)
  • SIMD(Single Instruction, Multiple Data) 동작을 위한 특별한 명령어
  • 멀티 테스킹을 지원하지 않는 하드웨어 구조
  • 호스트 환경인 경우 DMA로서 역할 수행
  • 아날로그 신호를 디지털 신호로 변환하고 출력으로 다시 아날로그 신호로 변환
  •  

    출처 : 위키피디아

     

    반응형