CPU和GPU上的结果不同

时间:2015-05-13 00:36:52

标签: c++ cuda double gpu nvidia

我使用C++CUDA C在CPU和GPU上实现了相同的算法。为了检查结果是否正确,我检查两个计算的2个double数组是否相同,精度为1.0E-8。结果是2个阵列不一样。是否可能有不同的结果,因为我正在处理两个不同的实体,或者我的代码中可能存在一些错误?

我必须增加到1.0E-3才能认为它们相等!

1 个答案:

答案 0 :(得分:0)

除非dev_s是本地线程,否则您将在此处将多个线程写入相同的内存位置:

dev_s[i] = dev_s[i-1] + 0.5*(dev_matrix[index]+dev_matrix[index-1]);