日前,行業(yè)組織Khronos發(fā)布了OpenCL 3.0最終版規(guī)范,從而將4月份的臨時(shí)規(guī)范轉(zhuǎn)正。作為老牌的GPU并行計(jì)算標(biāo)準(zhǔn),它希望借此煥發(fā)第二春,但能行嗎?
OpenCL最早由蘋果開發(fā),后經(jīng)NVIDIA、AMD等完善并提交給Khronos轉(zhuǎn)為跨平臺(tái)的開放標(biāo)準(zhǔn)。最新的3.0在某種程度上開了倒車,其核心API其實(shí)是2011年OpenCL 1.2的一個(gè)分支。
OpenCL 2.x的諸多開發(fā)功能在3.0上變成了可選,再次呼應(yīng)其失敗。實(shí)際上,2017年的OpenCL 2.2迄今為止都沒有人使用,包括但不限于Intel、NVIDIA和AMD,尷尬不?
簡(jiǎn)單來說,OpenCL 3.0增加了對(duì)異步DMA傳輸執(zhí)行的支持,也支持了SPIR-V 1.3。為了鼓勵(lì)開發(fā)者升級(jí),無論是從1.2還是從2.x版本升級(jí),都幾乎不需要做代碼變動(dòng)。
Khronos對(duì)于OpenCL仍舊寄予厚望,并提出了整合Vulkan、支持SPIR-V 1.4、1.5以及發(fā)布OpenCL Next的想法,盡管這看起來仍舊很零碎。
就目前而言,蘋果macOS 10.14棄用了OpenCL,力推自家Metal API。NVIDIA有更加成熟和對(duì)開發(fā)者友好的CUDA API,AMD僅支持OpenCL 1.2,且驅(qū)動(dòng)一團(tuán)糟,現(xiàn)在OpenCL唯一的大靠山似乎就是Intel了。