OpenCL 3.0 最终规范发布

Khronos 公司负责 OpenGL、Vulkan 和 OpenCL 系列规范的开发, объявил 关于最终规格的发布 OpenCL 3.0,定义 API 和 C 语言扩展,用于使用多核 CPU、GPU、FPGA、DSP 和其他专用芯片(从超级计算机和云服务器中使用的芯片到移动设备和移动设备中使用的芯片)组织跨平台并行计算。嵌入式技术。 OpenCL 标准完全开放且免版税。

同时 发表 开源 OpenCL SDK,包含用于开发 OpenCL 3.0 兼容应用程序的工具、示例、文档、头文件、C++ 包装器和 C 库。 还 提出 基于 Clang 编译器的 OpenCL 3.0 的初始实现,目前正在修补以纳入 LLVM 主流。 IBM、NVIDIA、英特尔、AMD、苹果、ARM、艺电、高通、德州仪器和东芝等公司都为该标准做出了贡献。

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

添加评论