Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCL内核编译器优化_Opencl - Fatal编程技术网

OpenCL内核编译器优化

OpenCL内核编译器优化,opencl,Opencl,我在OSX上使用OpenCL,我想知道是否有人能告诉我用于从OpenCL内核源代码生成GPU二进制文件的编译器?在OSX中,OpenCL内核是否先编译成LLVM,然后进行优化,最后编译成GPU本机代码?我还想知道OpenCL内核编译器是否对内核进行了优化,比如循环不变代码运动?是的,在Mac OS X上,所有OpenCL代码都被编译到LLVM IR,然后传递到特定于设备的优化和代码生成 您可以脱机生成LLVM位代码文件,并在clCreateProgramWithBinary中使用结果。openc

我在OSX上使用OpenCL,我想知道是否有人能告诉我用于从OpenCL内核源代码生成GPU二进制文件的编译器?在OSX中,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