我在OS X上使用OpenCL,我想知道是否有人可以告诉我用于从OpenCL内核源代码生成GPU二进制文件的编译器?在OS X中,是先将OpenCL内核编译为LLVM,然后进行优化,然后再最终编译为GPU本机代码吗?我也想知道OpenCL内核编译器是否在内核上进行了优化,例如循环不变代码运动?
是的,在Mac OS X上,所有OpenCL代码都编译为LLVM IR,然后传递给特定于设备的优化和代码生成。
您可以离线生成LLVM位代码文件,并在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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句