OpenCL (簡介)是由 Khronos 所管理,一套不用授權金、跨平台的平行計算程式開發標準,主要是針對 GPGPU(拿顯示晶片來做通用計算),不過也可以針對一般的多核心 CPU 來做平行化程式的開發∼
以目前個人電腦來說,nVIDIA 的 GPU、Intel 的 CPU、AMD 的 CPU GPU 都可以支援,支援性算是相當不錯了∼(不過現在應該只有 nVIDIA 把 OpenCL 的支援內建在驅動程式裡,裝好就可以直接用)
離 OpenCL 1.1 發布隔了一年半,khronos 終於更新 OpenCL、推出 1.2 版了!詳細的消息,可以參考 OpenCL 官方網站,或是《Khronos Releases OpenCL 1.2 Specification》這篇官方的新聞。而這一版主要是加強了平行計算程式開發上的彈性、功能、並做效能的提申,下面是官方的更新說明:
- Device partitioning – enabling applications to partition a device into sub-devices to directly control work assignment to particular compute units, reserve a part of the device for use for high priority/latency-sensitive tasks, or effectively use shared hardware resources such as a cache;
- Separate compilation and linking of objects – providing the capabilities and flexibility of traditional compilers enabling the creation of libraries of OpenCL programs for other programs to link to;
- Enhanced image support – including added support for 1D images and 1D & 2D image arrays. Also, the OpenGL sharing extension now enables an OpenCL image to be created from OpenGL 1D textures and 1D & 2D texture arrays;
- Built-in kernels represent the capabilities of specialized or non-programmable hardware and associated firmware, such as video encoder/decoders and digital signal processors, enabling these custom devices to be driven from and integrated closely with the OpenCL framework;
- DX9 Media Surface Sharing – enables efficient sharing between OpenCL and DirectX 9 or DXVA media surfaces;
- DX11 Surface Sharing – for seamless sharing between OpenCL and DirectX 11 surfaces.
相關文件:
- The OpenCL Khronos Registry(包含 header 檔)
- The OpenCL 1.2 Quick Reference card.
- The OpenCL 1.2 Online Man pages.