在CPU中使用OpenCL的浮点数,不会出现小数部分

时间:2014-08-20 13:05:28

标签: 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 float A, __global float *C) {
    int i = get_global_id(0);
    C[i] = A;
}

我将3.5值传递给变量A,这在CPU和GPU中运行正常。

为什么会这样?

0 个答案:

没有答案