【问题标题】:clBuild Options, passing OpenCL extensionsclBuild 选项,传递 OpenCL 扩展
【发布时间】:2012-04-12 01:24:20
【问题描述】:

我环顾四周,找不到解决相对简单的 OpenCL 相关问题的方法。

问题是,我刚开始在我的 OpenCL 内核中使用双精度,因为我当前的项目需要这么高的精度。此外,我试图让所有内容都得到管理,以便所有内核都具有它们可以使用的相同 #DEFINES。

然后我来到了扩展。通过 OpenCL,我必须包含

#pragma OPENCL EXTENSION cl_khr_fp64 : enable

如何将它包含在 clBuildProgram 的构建选项中?

【问题讨论】:

    标签: c++ c opencl


    【解决方案1】:

    您可以使用 CL_DEVICE_EXTENSIONS(OpenCL 1.1 规范的第 4.2 节)从调用 clGetDeviceInfo 的主机检查设备支持的扩展。如果支持扩展,返回的字符串将包含 'cl_khr_fp64'。

    使用clBuildProgram 编译 OpenCL 代码时,如果支持扩展,编译器会定义“cl_khr_fp64”(OpenCL 1.1 规范的第 9.1 节)。

    要在 OpenCL 代码中启用扩展,您必须包含 pragma 行。您可以通过将选项传递给clBuildProgram(如-D USE_FP64=1)从主机代码控制扩展的使用,然后在 OpenCL 代码中对其进行测试:

    #if USE_FP64
    #pragma OPENCL EXTENSION cl_khr_fp64 : enable
    #endif
    

    【讨论】:

      猜你喜欢
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 2011-03-01
      • 2017-10-23
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多