|
기획
|
|
전송 2008-12-11 00:00
| [테크닉]
|
OpenCL 1.0 표준 승인에 따른 병렬 컴퓨팅 환경의 변화
|
|
2. OpenCL이란? 
|

|
|
OpenCL (Open Computing Language)이란?


[프로세서 평행성, 중심에는 OpenCL이 위치]
OpenCL은 Open Computing Language의 약자로 공개된 병렬 컴퓨팅의 표준으로 NVIDIA CUDA와 AMD ATI Stream이 자사의 GPU를 병렬 컴퓨팅에 중심을 두고 있는 것과 달리 CPU와 GPU를 비롯하여 다른 프로세서들에서도 이를 이용할 수 있게 해주며, 이를 이용하여 컴퓨팅 리소스를 제어할 수 있게 해주는 일종의 API (Application Programming Interface)다.
CPU와 GPU는 각각에 맞는 프로그래밍 기술들을 갖고 있는데 CPU는 멀티 코어를 드라이브하여 성능을 향상시키고 OpenMP를 통해 효율을 증가시켜준다. GPU도 그래픽 API와 쉐이딩 언어를 제공하며, 최근에는 GPU를 병렬 컴퓨팅에 사용할 수 있도록 개선되고 있다. OpenCL은 CPU와 GPU의 서로 다른 구성에 따른 문제점을 개선하여 이들을 범용 목적 즉, 병렬 컴퓨팅이 가능하도록 해주는 외부의 컴퓨팅 API로 정의되며, CPU와 GPU의 공통 분모를 끌어내어 효율성을 극대화할 수 있게 해주는 기술이다.
OpenCL은 앞서도 언급되었듯이 포터블 기기, CPU와 GPU, 그리고 다른 프로세서들의 병렬 컴퓨팅을 가능하게 해주어 광범위하게 사용될 수 있으며, 오픈되어 무료라는 큰 장점도 가지고 있다.


OpenCL은 NVIDIA CUDA와 같이 C언어를 기반으로 하고 있기 때문에 C언어가 널리 사용되는 현재 적합하며, ISO C99 언어의 일부분이면서 병렬 컴퓨팅으로 확장하는 개념이므로 개발자들에게는 접근성이 용이하다.
또, OpenCL은 OpenGL과 같은 표준으로 서로 협력할 수 있는 구조를 가지며, OpenCL은 OpenGL의 텍스처, 오브젝트 버퍼와 렌더 버퍼 등의 데이터를 공유할 수 있다. OpenCL과 OpenGL은 또 하드웨어 내에서 명령을 효과적으로 다루며, 스케쥴링의 융통성과 동기화가 가능해진다. 그리고 OpenCL 임베디드 프로파일과 OpenGL ES의 사용을 통해 핸드핼드 장치와 모바일 시스템에도 적용할 수 있게 된다.

컴퓨팅 장치에 내장된 로컬 메모리 사용과 외부에 사용된 메모리를 추가로 사용하는 것이 가능하며, 메모리 관리 모델을 제공하여 병렬 컴퓨팅 과정에서의 메모리 사용 효율성도 높이고 있다.

OpenCL은 대부분의 상업적인 시스템 (HPC, High Performance Computing, 고성능 컴퓨팅)을 비롯하여 일반 데스크탑, 심지어 모바일, 핸드핼드 장치들에서도 활용할 수 있는 것이 가장 큰 장점이다. 또한, OpenCL은 멀티플 어플리케이션 팀들에 의해 하드웨어 소프트웨어 분야의 어플리케이션 호환성을 개선하고 있으며, 애플, AMD, 인텔, 삼성, IBM 등의 기업들이 OpenCL 워킹 그룹에 포함되어 후원해주고 있으므로 OpenCL은 업계 표준으로도 꾸준한 성장이 예상된다.
|
|
|
|
|
|
이전페이지 |
다음페이지.OpenCL로 GPU의 병렬 컴퓨팅 확장
|
| 관련 기사 보기 |
태그가 등록되지 않아 관련 기사를 출력할 수 없습니다
|
 |
|
권경욱 前 기자 / 필명 바이퍼투 /
press@bodnara.co.kr
|
| 남들은 스마트폰이나 타블렛 PC에 관심을 갖고 있지만, 여전히 PC가 좋다. 새로운 것, 독특한 것을 좋아하지만, 남앞에 나서거나 사진찍히는 것을 싫어해 기자에는 제일 어울리지 않는 성격. 누구보다 빠르게 PC 하드웨어 정보를 전달하기 위해 노력하고 있으며, PC 하드웨어에 대한 열정은 현재진행형이다. |
| 기자가 쓴 다른 기사 보기 |
|
|
|
|
|
|
2026년 09월
주간 히트 랭킹
|
|
|
|
|
|
|
실시간 댓글
|
소셜 네트워크
|
|
 |
|
 |
|