차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
tech:opencl [2013/12/22 15:59] – 새로 만듦 anon | tech:opencl [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | |||
+ | ======OpenCL====== | ||
+ | {{http:// | ||
+ | Open Computing Language, OpenCL | ||
+ | |||
+ | 한글명칭은 개방형 범용 병렬 컴퓨팅 프레임워크이며, | ||
+ | |||
+ | 당연하게도 [[Mac OS X]] 스노우 레오파드와 같이 공개되었다. | ||
+ | |||
+ | 애플은 OpenCL 1.0을 공개하면서 이렇게 말했다. | ||
+ | |||
+ | > | ||
+ | |||
+ | OpenCL은 나온 지가 얼마 되지 않아, 많이 알려져 있지 않다. OpenCL은 공개 규격(API)일뿐이지 소스가 공개된 게 아니며, 구현은 전적으로 개발사의 몫이긴 하지만, CUDA는 nVIDIA 하드웨어에서만 동작한다는 단점을 가지고 있어 장래가 기대된다고 보는 사람도 있다. 최근 [[AMD]]측과 인텔 측에선 OpenCL을 밀고 있는데, 그러나 아직(2013년 8월 기준) AMD의 경우 관련 카탈리스트 드라이버가 정식으로 안 나온 상태 (( 베타로는 나왔지만, | ||
+ | |||
+ | Mac OS X의 경우, 10.6 Snow Leopard부터 기본적으로 OpenCL을 지원하고 있으며, 따라서 별도의 SDK/ | ||
+ | |||
+ | GPU만 제어하는 CUDA에 비해 여러 가지 장비를 동시에 관리해야 하므로, 아무래도 명령어가 많이 길어지고 초기화 과정도 하나하나 다 해 줘야 하는 결점이 있다. 코드 길이가 CUDA 코드에 비해 압도적으로 길고, 명령어가 많아서 아무래도 처음 배우는 사람들에게는 문턱이 높다. 대신 여러 장비를 동시에 통제할 수 있고, 그 방법 또한 CUDA보다 세련된 면이 있다. | ||
+ | |||
+ | PyOpenCL이라는 [[파이썬]] wrapper를 사용하여 편리하고 간결하게 사용할 수 있다. 관심이 있다면 찾아서 배워 보자. | ||
+ | |||
+ | iOS 6에선 잘하면 OpenCL이 등장할 가능성이 크다. 일단, 그 증거로 애플이 iOS 4.3 베타에선 힌트를 숨겨놓더니, | ||
+ | |||
+ | 2013년 8월 31일 현재 최신 버전은 OpenCL 1.2 이다. 그리고 NVIDIA, AMD 각각 SDK 를 제공한다. ([[NVIDIA]] 는 [[CUDA]] 툴킷에 포함하여 제공, [[AMD]] 는 자체 IDE 를 제작함) | ||
+ | |||
+ | 그리고 OpenCL 을 소스가 공개돼서는 안 되는 상용 프로젝트에 사용할 때 문제가 있다. OpenCL 은 호환성 확보를 위해 Online Complie 이라는 방법을 사용하는데 소스 코드를 불러와 그걸을 즉석에서 컴파일하여 바이너리를 만드는 방식이다. 문제는, 이 것 때문에 소스 코드 공개를 막을 방법이 없다! | ||
+ | |||
+ | * 출처: 엔하위키- OpenCL | ||
+ | |||
+ | |||
+ | ^ 누구나 수정하실 수 있습니다. [[http:// | ||
+ | |||
+ | |||