Clang OpenCL内核到PTX到二进制的LLVM IR

Clang OpenCL内核到PTX到二进制的LLVM IR,clang,opencl,llvm,ptx,Clang,Opencl,Llvm,Ptx,我正在使用clang为Nvidia OpenCL和Cuda内核生成LLVM IR,我想随后对其进行检测,为OpenCL做如下操作: clang -c -x cl -S -emit-llvm -cl-std=CL2.0 kernel.cl -o kernel.ll 这是对Cuda的描述 我要寻找的是一种从插入指令的IR到实际二进制的方法。对于Cuda,我知道我可以使用NVPTX后端生成所描述的PTX和JIT编译(或者使用ptxas?)。我想知道OpenCL的情况是否也可能发生类似的事情,如果是的

我正在使用clang为Nvidia OpenCL和Cuda内核生成LLVM IR,我想随后对其进行检测,为OpenCL做如下操作:

clang -c -x cl -S -emit-llvm -cl-std=CL2.0 kernel.cl -o kernel.ll
这是对Cuda的描述


我要寻找的是一种从插入指令的IR到实际二进制的方法。对于Cuda,我知道我可以使用NVPTX后端生成所描述的PTX和JIT编译(或者使用ptxas?)。我想知道OpenCL的情况是否也可能发生类似的事情,如果是的话,也许是一个最小的例子。提前感谢。

原则上,您可以使用
CL\u程序\u二进制大小
CL\u程序\u二进制文件
为加载和编译的OpenCL内核提取二进制文件

据我所知,这将以完全由实现定义的格式生成二进制文件。所以,如果你运气不好,不管怎样,你只要把红外代码拿回来就行了。不过,如果运气好的话,它可能会在您的平台上包含PTX机器代码