OpenCL内核编译器优化

时间:2013-07-27 10:46:51

标签: opencl

我在OS X上使用OpenCL,我想知道是否有人可以告诉我用于从OpenCL内核源代码生成GPU二进制文件的编译器?在OS X中,OpenCL内核首先编译为LLVM,然后进行优化,最后编译为GPU本机代码?另外我想知道OpenCL内核编译器是否对内核进行了优化,例如循环不变代码运动?

1 个答案:

答案 0 :(得分:2)

是的,在Mac OS X上,所有OpenCL代码都编译为LLVM IR,然后传递给特定于设备的优化和代码生成。

您可以离线生成LLVM bitcode文件,并使用 clCreateProgramWithBinary 中的结果。 openclc 编译器位于OpenCL框架内(/System/Library/Framework/OpenCL.framework/Libraries/openclc)。您需要这些选项(arch可以是i386,x86_64,gpu_32):

openclc -c -o foo.bc -arch gpu_32 -emit-llvm foo.cl