OpenCL双精度计算结果不一致,A卡不正确
最近把一个CPU计算代码翻译为OpenCL进行运行,已经调试并验证通过(使用GTX1060).
计算过程是一个按迭代过程,计算结果以残差(后一迭代步与前一迭代步直接的结果差值)方式呈现,残差变小的过程称为收敛过程;
计算环境VS2015,全部fp64,Kernel函数依次在同一命令队列中调用,基于event等待进行约束;
现象是:
1.使用CUDA 9.2(OpenCL1.2)在GTX1060上的运行,各迭代步结果与CPU串行运行基本一致(在小数点12后有细微偏差);
2.A卡具有Debug与Release的区别(仅改变VS的Debug与Release)
a)使用Debug直接运行,第3个迭代步就发散(计算结果nan),前面2步结果不正确且表现出随机性(多次运行结果均不一致);
b)使用Release运行,能够计算且不发散,但各迭代步的值和CPU/GTX1060有很大差别;
c)使得Debug调试,若对包含调用多个clEnqueueNDRangeKernel()的函数step over(逐过程)运行,结果出错,但是,如果进入该函数后,逐个运行clEnqueueNDRangeKernel()函数,结果又正确一致;
d)尝试更改AMD驱动版本,更换AMD显卡(2片r9 390,1片r9 280x),添加OpenCL编译选项(如-cl-std=CL1.2 -cl-opt-disable)等均没效果;
e)本身未启用乱序执行,怀疑有不按照流程执行,于是使用了clSetEventCallback设置回调函数监控时间,发现流程正确。
综上,尤其是那个逐个监控就正确,不看时就不正确,感觉是这个“薛定谔事件”极为不科学.
计算过程是一个按迭代过程,计算结果以残差(后一迭代步与前一迭代步直接的结果差值)方式呈现,残差变小的过程称为收敛过程;
计算环境VS2015,全部fp64,Kernel函数依次在同一命令队列中调用,基于event等待进行约束;
现象是:
1.使用CUDA 9.2(OpenCL1.2)在GTX1060上的运行,各迭代步结果与CPU串行运行基本一致(在小数点12后有细微偏差);
2.A卡具有Debug与Release的区别(仅改变VS的Debug与Release)
a)使用Debug直接运行,第3个迭代步就发散(计算结果nan),前面2步结果不正确且表现出随机性(多次运行结果均不一致);
b)使用Release运行,能够计算且不发散,但各迭代步的值和CPU/GTX1060有很大差别;
c)使得Debug调试,若对包含调用多个clEnqueueNDRangeKernel()的函数step over(逐过程)运行,结果出错,但是,如果进入该函数后,逐个运行clEnqueueNDRangeKernel()函数,结果又正确一致;
d)尝试更改AMD驱动版本,更换AMD显卡(2片r9 390,1片r9 280x),添加OpenCL编译选项(如-cl-std=CL1.2 -cl-opt-disable)等均没效果;
e)本身未启用乱序执行,怀疑有不按照流程执行,于是使用了clSetEventCallback设置回调函数监控时间,发现流程正确。
综上,尤其是那个逐个监控就正确,不看时就不正确,感觉是这个“薛定谔事件”极为不科学.
...全文
相关推荐
OpenCL GPU性能测试源代码
OpenCL提供了双精度浮点数支持,源代码会通过执行双精度计算任务来测试GPU的双精度运算性能。纹理性能测试则是针对GPU在处理图像和视频数据时的能力。
20、OpenCL 在不同编程语言中的应用及双精度支持
本文详细介绍了 OpenCL 在不同编程语言(如 Python、Java 和 Haskell)中的应用,并重点探讨了 OpenCL 的双精度浮点运算支持及其在科学和工程计算中的重要性。通过双精度矩阵乘法的 C++ 示例,展示了如何在 OpenCL 中启用双精度扩展、编写内核代码以及与主机程序交互。此外,还提供了 Python 中使用 PyOpenCL、Java 中使用 Aparapi 以及 Haskell 中使用 HOpenCL 进行向量加法的代码示例,帮助开发者根据自身需求选择合适的语言进行高性能计算开发
openCL C语言
#### 四、内存同步机制在OpenCL C中,为了确保多线程环境下的正确性,提供了一套内存同步机制:- **数据同步**: 使用原子操作(`atomicAdd`)等函数来保证多线程对共享数据的一致性访问
OpenCL内建函数中文手册.pdf
在实施OpenCL项目时,开发者应当仔细阅读规范文档,理解各种内建函数的使用方法和限制,并且在项目中正确地应用这些知识。
OpenCL-Z-开源
**性能指标**:如单精度浮点运算能力(FP32)、双精度浮点运算能力(FP64)、纹理单元信息等。4.



