OpenCL代码编译成Vulkan代码(SPIR-V)的工具

最近接到个任务,就是把OpenCL.cl代码编译成Vulkan程序。

请使用 OpenCL代码编译成Vulkan代码的工具clspv 实现这部分功能,官方提供的转换库,目前看来暂时没办法使用。

根据官方文档,Vulkan 1.0支持OpenCL 1.0/2.1的代码直接编译成Vulkan程序。

官方提供了一个名为 KhronosGroup/SPIR 的开源项目,支持OpenCL编译成SPIR-V代码的功能(Vulkan使用SPIR-V)。

这个工具在 macOS Mojave(10.14.2) 系统上使用 Xcode Version 10.1 (10B61) 编译流程如下:

 

编译完成后的使用方式如下:

  • <triple>: for 32 bit SPIR-V use spir-unknown-unknown, for 64 bit SPIR-V use spir64-unknown-unknown.
  • -D: to enable support for extension. e.g. -Dcl_khr_fp16 compile option will enable half support.
  • -O: -O0 (default) is the only tested option value at the moment. It's assumed by design that all optimizations are executed by SPIR-V consumer.

比如:

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

发表评论前,请滑动滚动条解锁
三十岁