OpenCL编程指南
1. 简介
OpenCL(Open Computing Language,开放计算语言)是一种开放的、跨平台的并行计算框架,由Khronos Group维护。它为开发者提供了统一的编程接口,使得应用程序可以在不同的硬件平台(CPU、GPU、DSP和其他处理器)上运行,从而提高了代码的可移植性和性能。OpenCL主要包含以下两个部分:
-
用于编写 kernels(在OpenCL设备上运行的函数) 的语言(基于C99)
-
用于定义并控制平台的API
如下图所示,OpenCL框架包含两个API:平台层(Platform Layer)API 和 运行时(Runtime)API。

-
平台层API在主机(Host)CPU上运行,主要用于查询和使能系统中可用的并行处理器或计算设备。通过查询可用的计算设备,应用程序可以移植到不同系统中运行,从而适应各种硬件加速设备的组合。
-
运行时API则使应用程序能够为其选定的计算设备编译内核程序,并将其并行加载到这些处理器上执行。内核程序执行完成后,运行时API还将用于收集和处理结果。