Число с плавающей запятой с 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.
Почему это случилось?