在OpenCL中使用带有双精度的平方根函数(sqrt)

时间:2013-07-26 07:51:53

标签: opencl

我有一个使用OpenCL内置平方根函数(sqrt)的内核但是当我尝试在GPU上运行内核时,我在构建时遇到无法识别的命令错误,如果我使用浮点数它会工作正常但是使用双打时它不起作用。我在Mac OS X 10.7.5上运行,而我的显卡是ATI Radeon HD 6750卡。

有谁知道问题可能是什么?

1 个答案:

答案 0 :(得分:1)

显然你的gpu不支持双精度浮点数: http://clbenchmark.com/device-environment.jsp?config=12011396

支持双重报告扩展的AMD卡:cl_khr_fp64(或cl_amd_fp64)。

您可以通过以下方式检查openCL编译时间:

#ifdef cl_khr_fp64
    #pragma OPENCL EXTENSION cl_khr_fp64 : enable
#elif defined(cl_amd_fp64)
    #pragma OPENCL EXTENSION cl_amd_fp64 : enable
#else
    #error "Double precision floating point not supported by OpenCL implementation."
#endif

或者您可以在不运行opencl编译的情况下进行检查:

status = clGetDeviceInfo (oclInfo->device, CL_DEVICE_DOUBLE_FP_CONFIG, sizeof configFp64, &configFp64, NULL);