日前,行业组织Khronos发布了OpenCL 3.0最终版规范,从而将4月份的临时规范转正。作为老牌的GPU并行计算标准,它希望借此焕发第二春,但能行吗?
OpenCL最早由苹果开发,后经NVIDIA、AMD等完善并提交给Khronos转为跨平台的开放标准。最新的3.0在某种程度上开了倒车,其核心API其实是2011年OpenCL 1.2的一个分支。
OpenCL 2.x的诸多开发功能在3.0上变成了可选,再次呼应其失败。实际上,2017年的OpenCL 2.2迄今为止都没有人使用,包括但不限于Intel、NVIDIA和AMD,尴尬不?
简单来说,OpenCL 3.0增加了对异步DMA传输执行的支持,也支持了SPIR-V 1.3。为了鼓励开发者升级,无论是从1.2还是从2.x版本升级,都几乎不需要做代码变动。
Khronos对于OpenCL仍旧寄予厚望,并提出了整合Vulkan、支持SPIR-V 1.4、1.5以及发布OpenCL Next的想法,尽管这看起来仍旧很零碎。
就目前而言,苹果macOS 10.14弃用了OpenCL,力推自家Metal API。NVIDIA有更加成熟和对开发者友好的CUDA API,AMD仅支持OpenCL 1.2,且驱动一团糟,现在OpenCL唯一的大靠山似乎就是Intel了。