【问题标题】:OpenCL kernel compiler optimisationsOpenCL 内核编译器优化
【发布时间】:2013-07-27 10:46:51
【问题描述】:

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

【问题讨论】:

    标签: opencl


    【解决方案1】:

    是的,在 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
    

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多