我使用Linux中的GeForce GT 610卡在OpenCL中编程.我的CPU和GPU双精度结果不一致.我可以在这里发布部分代码,但我首先想知道是否有其他人遇到过这个问题.当我运行具有多次迭代的循环时,GPU和CPU双精度结果之间的差异变得明显.代码真的没有什么特别之处,但如果有人感兴趣,我可以在这里发布.非常感谢.这是我的代码.请原谅__和糟糕的格式,因为我是新来的:)正如你所看到的,我有两个循环,我的CPU代码基本上几乎是相同的版本.
#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."
Run Code Online (Sandbox Code Playgroud)
#万一
__kernel void simpar(__global double* fp, __global double* fp1,
__global double* fp3, __global double* fp5,
__global double* fp6, __global double* fp7,
__global double* fp8, __global double* fp8Plus,
__global double* x, __global double* v, __global double* acc,
__global double* keBuf, __global double* peBuf,
unsigned int prntstps, unsigned int nprntstps, double dt …Run Code Online (Sandbox Code Playgroud) opencl ×1