cl_khr_fp64和cl_amd_fp64之间的区别?

时间:2012-02-02 14:29:51

标签: opencl gpu amd-processor

我刚发现在我的(相当昂贵的)Radeon 6970上,只支持cl_amd_fp64扩展名。我在代码的某些部分得到奇怪的结果(访问0.005的值实际上使用1.99916e+37?)与cl_amd_fp64一起运行时。在CPU上使用带有Intel SDK的cl_khr_fp64工作正常。 (输入缓冲区完全相同)

extension page提供的信息非常少。

两者之间究竟有什么区别?

1 个答案:

答案 0 :(得分:2)

cl_khr_fp64是Khronos官方双精度浮点精度扩展。它要求算术符合IEEE 754-2008标准,并支持全系列的OpenCL矢量类型和标准库函数。

最初,AMD只实现了cl_khr_fp64扩展所需的子集,因此他们发布了自己的供应商扩展cl_amd_fp64,以支持其GPU硬件的双精度。当它第一次出现时,支持的范围非常有限(可能只有+, - ,*具有非标准的舍入行为IIRC),但它随着连续的SDK发布和新的硬件修订而慢慢扩展。如果我的记忆正确,它们会列出发行说明中支持的内容。

我没有密切关注他们的进展一段时间,所以我不确定为什么你所看到的可能正在发生。如果您安装了最新的驱动程序和流SDK版本,我建议将repro案例放在一起并向他们提交错误报告。可能是你正在使用他们不支持或保证结果的东西,但也可能是你发现了一个错误。

相关问题