OpenCL最初是苹果倡议,联合英伟达、英特尔、AMD等厂家指定的开放通用计算平台标准,在最初或者说OpenCL1。x就是CUDA的克隆体。 但是到了2。X世代,OpenCL变成了AMD主导的规格,英伟达这边对OpenCL2。X的态度则是完全冷处理,仅有极少数的版本提供体验性的OpenCL2。X支持。 AMD自打ROCm发布后,OpenCLSDK就停止更新直到完全从自家网站拿掉,可以说,AMD此时已经认定OpenCL的推广完全失败。 随着Apple也主推Metal后,OpenCL此时有点墙倒众人推的感觉,基本上就剩下Intel在力撑(如果不考虑安卓这边的话)。 然而,到了OpenCL3。0后,事情似乎出现了重大变化。 OpenCL3。0作出了一个让很多开发人员感到惊讶的做决定:将OpenCL2。x里的很多特性列作可选项,这直接导致了OpenCL3。0某种程度上成了一个不再兼容OpenCL2。x的标准换成人话就是OpenCL2。x成了非常尴尬的存在,OpenCL3。0成了一个破坏兼容性的标准。 AMD似乎成了OpenCL3。0的最大牺牲者,要知道他们当初是OpenCL2。x的坚定支持者,当然,从他们过往一段时间实质性抛弃OpenCL后续开发支持的情况看,OpenCL3。0的出现表明了AMD已经不打算对OpenCL作更多的挣扎。 英伟达这家过去冷处理OpenCL的公司最近则重新加强了OpenCL的支持力度,现在新的驱动都一律提供了OpenCL3。0的支持,包括这次专为3080Ti准备的驱动也是如此: 这是RTX3080跑466。54的OpenCL信息,可以看到OpenCL版本为3。0。 可以预期,随着NVIDIA重新回归对新版本OpenCL的支持,OpenCL开发者将会有更多的选择,CUDA的新特性也有望在OpenCL中得到更快的支持。