CPU中OpenCL的浮点数,不';不要显示小数部分
我在OpenCL中有以下代码:CPU中OpenCL的浮点数,不';不要显示小数部分,opencl,cpu,jocl,Opencl,Cpu,Jocl,我在OpenCL中有以下代码: __kernel void vector_add(__global float *C) { int i = get_global_id(0); float t =3.5f; C[i] = t; } 当我在GPU中运行时,变量C中的返回值是3.5,所以它是正常的。 但当我在CPU中运行时,返回值是3.0。 任何浮点值都会发生这种情况 但如果我运行此代码: __kernel void vector_add(__global const flo
__kernel void vector_add(__global float *C) {
int i = get_global_id(0);
float t =3.5f;
C[i] = t;
}
当我在GPU中运行时,变量C中的返回值是3.5,所以它是正常的。
但当我在CPU中运行时,返回值是3.0。
任何浮点值都会发生这种情况
但如果我运行此代码:
__kernel void vector_add(__global const float A, __global float *C) {
int i = get_global_id(0);
C[i] = A;
}
我将3.5的值传递给变量A,这在CPU和GPU中运行正常
为什么会发生这种情况?您的CPU端(主机端)代码是什么?我试图在CPU中使用OpenCL执行此代码,我认为CPU是主机端和设备端。我说的对吗?你用什么调用来设置内核参数,你如何读回值等等。我们需要所有这些代码来帮助你。