OpenGL 已停止更新,未来由 Vulkan 接替。
OpenCL 的未来也已经由 Khronos 作出决定,合并入 Vulkan。
macOS 官方支持的 OpenGL 最新版本只到4.1,在此之前很长一段时间停留在3.x。抛弃 OpenGL 早在预料之中。苹果的想法是依靠庞大的 iOS 设备和用户数反过来吸引 macOS 开发者(能不能成真另当别论)。另一个利好是抛弃 OpenGL 陈旧的历史负担,减少系统维护开发成本。OpenGL ES 同理。
OpenCL 有点意思,因为它的原始创始者是苹果自己。对比 CUDA,OpenCL 开放跨平台的优势付出的代价是没有 NVIDIA 这类鼎力支持的厂商,开发调试过程极其复杂,生态圈也被 CUDA 远远抛开。苹果很长一段时间内倒是大力支持,还为此在 Mac 产品线上全线配备 AMD 图形卡,抛弃 NVIDIA(这是一个原因,最主要的是选择 AMD 成本更低,获得的主导权更大)。到 OpenCL 2.2发布时,Khronos决定未来将其与 Vulkan 融合。未来更新的版本的、单独的 OpenCL 也将不复存在。而 Metal 相当于集成了 OpenGL 和 OpenCL 特性、兼具图形渲染和通用计算、面向底层低开销的新一代 API。新近发布的 Metal 2,更加强了其在机器学习和虚拟现实方面的效率和特性。
为什么不支持 Vulkan?自己一人说了算当然比一群人开会来的爽啊,问题是能不能做到像微软和 NVIDIA 那样自己爽大家也爽?难。
未来的标准,CUDA、DirectX、DirectCompute 没有主导权,Vulkan 不能自己说了算,Metal 当然被确立为自家官方未来的标准。
借由摒弃这三项标准这事,可以预测一下苹果未来工作站级别电脑会是什么情况——只能用于 macOS/iOS/tvOS 平台的 API,只支持此标准的操作系统,持观望和否定态度的广大开发者,大概率不支持此标准的 NVIDIA 等硬件厂商——没准下一代 Mac Pro 遭到的恶评比本代更多:圆柱体 Mac Pro 至少兼容性不是大问题。而随着 Metal 未来可能的普及,苹果自研的桌面级 GPU 有朝一日面世也不会太令人惊讶。