Число с плавающей запятой с OpenCL в CPU, не отображается десятичная часть

У меня есть этот код в 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 ответов

Другие вопросы по тегам