作為對即將成為主線的 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 等平臺。
由于外部 llvm-spirv 承擔了大部分繁重的工作,Clang 工具鏈支持的實現只有 200 多行代碼,并且自 10 月以來一直在接受審查,預計將成為明年 LLVM 14.0 的一部分。
隨著 HIPSPV 代碼也在本月合并,從 AMD HIP 到 SPIR-V,到目前為止,12 月對于開源 LLVM 堆棧來說是一個偉大的月份。
本文地址:https://www.oschina.net/news/175484/clang-spir-v-toolchain-lands