在 OpenCL 3.0 以临时版本形式发布六年后,Khronos Group 今日正式宣布推出 OpenCL 3.1。
今天上午传来一个令人惊喜的消息:OpenCL 3.1 正式发布。OpenCL 3.1 将此前作为扩展或可选功能存在的成熟能力纳入核心规范中。其中一项强制要求是支持 SPIR-V 输入(SPIR-V ingestion),使其能够处理 SPIR-V 内核——这是与 Vulkan 共享的中间表示(IR),也可由 LLVM/Clang 等工具链生成。
OpenCL 3.1 还将多项功能纳入核心规范,旨在为 OpenCL 提供更高效的 AI 与 HPC 支持。这些强制性功能包括:子组(subgroups)、整数点积运算(integer dot products)、一种用于查询建议本地工作组大小的新机制,以及一个标准设备 UUID 查询接口,以匹配 Vulkan 的行为。
OpenCL 3.1 的发布还引入了无需依赖扩展即可使用的全新语言特性,例如改进的 OpenCL C printf() 支持、对 OpenCL 内存模型中“包含范围”(inclusive scopes)的放宽,以及其他多项优化。

目前已有多个厂商正在开发对 OpenCL 3.1 的支持,Mesa 驱动、Rusticl、PoCL 和 CLVK 均被列为即将推出的开源 OpenCL 3.1 实现方案。
本次 OpenCL 3.1 发布公告还指出,未来将推出一系列新扩展,包括用于低开销可重放工作负载的命令缓冲区(command buffers)、统一共享内存的增强功能、协同矩阵操作(cooperative matrix operations),以及面向低精度格式的新型 AI 数据类型。
看到 OpenCL 3.1 正式发布,并持续演进以满足当今 AI 与高性能计算的需求,令人倍感振奋。有关 OpenCL 3.1 更详细的变更信息,可查阅 Khronos.org 上的官方公告。OpenCL 3.1 的技术文档可在 GitHub 上获取。
转自 OpenCL 3.1 Released To Bolster AI & HPC Workloads – Phoronix
Linuxeden开源社区