OpenCL 3.0 规范推出

Khronos 公司负责 OpenGL、Vulkan 和 OpenCL 系列规范的开发, объявил 完成 OpenCL 3.0 规范的开发,该规范定义了 C 语言的 API 和扩展,用于使用多核 CPU、GPU、FPGA、DSP 和其他专用芯片(来自超级计算机和云服务器)组织跨平台并行计算移动设备和嵌入式技术中使用的芯片。 OpenCL标准是完全开放的,不需要许可费。 IBM、NVIDIA、英特尔、AMD、苹果、ARM、艺电、高通、德州仪器和东芝等公司参与了该标准的制定工作。

在当前阶段,该规范已被指定为临时状态,这意味着可以根据通过 GitHub上。 一旦考虑到这些意见,规范将最终确定,并发布最终的测试套件以测试现有实现的兼容性。

OpenCL 3.0 规范推出

最值得注意的 产品特点 OpenCL 3.0:

  • OpenCL 3.0 API 现在涵盖了 OpenCL 的所有版本(1.2、2.x),无需为每个版本提供单独的规范。 OpenCL 3.0 提供了通过集成附加规范来扩展核心功能的能力,这些规范将以选项的形式分层,而不会妨碍 OpenCL 1.2/2.X 的整体性。
  • 仅与 OpenCL 1.2 相对应的功能被声明为强制功能,而 OpenCL 2.x 规范中提出的所有功能都被归类为可选功能。 这种方法将使创建与 OpenCL 3.0 兼容的自定义实现变得更加容易,并扩大可以使用 OpenCL 3.0 的设备范围。 例如,供应商可以实现 OpenCL 3.0 支持,而无需实现特定的 OpenCL 2.x 功能。 为了访问可选的语言功能,OpenCL 3.0 添加了一个测试请求系统,允许您评估对各个 API 元素以及特殊宏的支持。
  • 与之前发布的规范的统一简化了应用程序向 OpenCL 3.0 的过渡。 OpenCL 1.2 应用程序无需修改即可在支持 OpenCL 3.0 的设备上运行。 OpenCL 2.x 应用程序也不需要更改代码,只要 OpenCL 3.0 环境提供所需的功能(为了将来的可移植性,建议 OpenCL 2.x 应用程序添加测试查询来评估对 OpenCL 2.x 功能的支持正在使用)。 采用 OpenCL 实现的驱动程序开发人员将能够轻松地将其产品升级到 OpenCL 3.0,仅添加某些 API 调用的查询处理,并随着时间的推移逐步添加功能。
  • OpenCL 3.0 规范已与 SPIR-V 通用中间表示的环境、扩展和规范保持一致,Vulkan API 也使用该表示。 对 SPIR-V 1.3 规范的支持已作为可选功能添加到核心 OpenCL 3.0 中。 通过使用中间表示 SPIR-V 对于计算核心,添加了对子组操作的支持。
    OpenCL 3.0 规范推出

  • 添加了对执行异步 DMA 操作 (Asynchronous DMA) 的扩展的支持,支持直接内存访问的类 DSP 芯片。 异步 DMA 使得能够使用 DMA 事务以异步方式在全局内存和本地内存之间传输数据,与正在进行的计算或其他数据传输操作并行。
  • C 语言并行编程扩展规范更新为 版本3.0,并且已停止开发 C++ 的 OpenCL 语言扩展,转而支持“C++ for OpenCL”项目。 C++ for OpenCL 是一个基于 Clang/LLVM 的编译器 广播 C++ 和 OpenCL C 内核到 SPIR-V 中间表示或低级本机代码。 通过翻译,SPIR-V还使用SYCL模板库组织C++应用程序的组装,从而简化了并行应用程序的创建。

    OpenCL 3.0 规范推出

  • 建议通过 Vulkan API 翻译 OpenCL 的编译器 类风湿病毒,它将 OpenCL 核心转换为 Vulkan SPIR-V 表示,以及一个层 克拉夫克 使 OpenCL API 在 Vulkan 之上工作。

    OpenCL 3.0 规范推出

来源: opennet.ru

添加评论