七月底,Khronos Group宣布了新一代通用计算标准OpenCL 2.0。如今趁着新一届超级计算大会SC 2013召开的机会,新标准终于正式公开发布了。
OpenCL 2.0是这个免费开放跨平台并行编程规范的重大进步,引入了增强的执行模型和C11/C++11内存模型子集、同步、原子操作,拥有丰富的算法和编程模式,可轻松实现计算加速和更好的性能。
OpenCL 2.0对异构计算来说是个新的里程碑,CPU、GPU、DSP等硬件资源可以得到更彻底、更高效的释放,特别是在新兴的移动平台上也可以大展拳脚,包括增强现实、物理模拟、移动游戏等等。
Adobe、AMD、HSA基金会、华为、Imagination、Intel、NVIDIA、布里斯托尔大学、Vivante等企业机构都表达了对OpenCL 2.0标准的欢迎和支持。
OpenCL 2.0标准规范资源下载: http://www.khronos.org/registry/cl/
OpenCL 2.0主要新特性回顾:
1、共享虚拟内存
主机和设备内核可以直接共享复杂的、包含指针的数据结构,大大提高编程灵活性,避免冗余的数据转移。
2、动态并行
设备内核可以在无需主机交互的情况下进行内核排队,实现灵活的工作调度,避免数据转移,大大减轻主处理器的负担。
3、通用内存空间
无需指定地址空间名称即可为引数(argument)编写函数,不用再为程序里的每一个地址空间名称编写函数。
4、图像
改进图像支持,包括sRGB、3D,内核可以读写同一图像。
5、C11原子操作
新的C11原子和同步操作子集,分配在同一工作组内
6、Pipes
以FIFO格式组织数据的内存对象,可以直接读写,数据结构可简单编程、高度优化。
7、安卓可安装客户端驱动扩展
安卓系统上可将OpenCL作为共享对象进行载入。