2013-07-27 5 views
0

Я использую OpenCL для OS X, мне было интересно, может ли кто-нибудь сказать мне компилятор, который используется для генерации бинарного файла GPU из исходного кода ядра OpenCL? В OS X - это ядро ​​OpenCL, скомпилированное в LLVM, сначала оптимизированное, а затем, наконец, скомпилированное в собственный код GPU? Также мне было интересно, не делает ли компилятор ядра OpenCL оптимизацией в ядре, такой как движение цикла с инвариантным циклом?Оптимизация компилятора ядра OpenCL

ответ

2

Да, в Mac OS X весь код OpenCL скомпилирован в LLVM IR, который затем передается на оптимизацию и генерирование кода.

Вы можете сгенерировать файлы в формате LLVM bitcode в автономном режиме и использовать результат в clCreateProgramWithBinary. Компилятор openclc находится внутри рамки OpenCL (/System/Library/Framework/OpenCL.framework/Libraries/openclc). Вам нужны эти опции (арка может быть i386, x86_64, gpu_32):

openclc -c -o foo.bc -arch gpu_32 -emit-llvm foo.cl 
Смежные вопросы