作为对即将成为主线的 LLVM SPIR-V 后端工作的补充,Clang 现已合并初步的 SPIR-V 工具链支持。此功能用于从 Clang 转换为符合 OpenCL 环境规范的 SPIR-V 中间表示 (Intermediate Representation) —— 例如将 OpenCL 内核编译为 SPIR-V。
在尚未合并 LLVM SPIR-V 后端的情况下,Clang SPIR-V 工具链依赖于外部 LLVM 到 SPIR-V 转换器 (llvm-spirv) 完成转换过程。一旦这个大的 SPIR-V 后端被合并,并保持良好状态,它就可以过渡到在 LLVM 代码库中使用,而无需外部的 llvm-spirv 工具。
此工具链支持为 32 位或 64 位目标生成 SPIR-V 二进制文件。SPIR-V 生成的目标是针对 OpenCL 的环境规范,同时支持扩展到 Vulkan 等平台。
▲ 现已支持从主线 Clang Targeting SPIR-V
由于外部 llvm-spirv 承担了大部分繁重的工作,Clang 工具链支持的实现只有 200 多行代码,并且自 10 月以来一直在接受审查,预计将成为明年 LLVM 14.0 的一部分。
随着 HIPSPV 代码也在本月合并,从 AMD HIP 到 SPIR-V,到目前为止,12 月对于开源 LLVM 堆栈来说是一个伟大的月份。
暂无更多评论