系统相关
首页 > 系统相关> > linux-通过ssh进行OpenCL中的浮点错误

linux-通过ssh进行OpenCL中的浮点错误

作者:互联网

我在OpenCL中发现了浮点运算问题.这是我的内核:

__kernel void MyKernel(__global const float4* _pInput, __global float4* _pOutput)
{
    int IndexOfRow      = get_global_id(0);
    int NumberOfRows    = get_global_size(0);
    int IndexOfColumn   = get_global_id(1);
    int NumberOfColumns = get_global_size(1);

    ...

   _pOutput[0] = 1.9f * 100.0f; // constant float return value
}

执行内核并下载输出缓冲区后,使用ssh连接在不同客户端上的结果始终为100.如果我在本地执行该程序,结果为190.似乎小数点后的数字被截断了.

操作系统是带有AMD OpenCL 1.2的Open Suse Linux.

有什么问题?

解决方法:

我刚刚找到了解决方案.这取决于您的LANG的ENV设置.它必须是en_US.UTF-8.您可以使用env | grep LANG进行检查.

这可能是JIT编译器错误.在德国,浮点用“,”代替“.”.

标签:floating-point,ssh,opencl,kernel,linux
来源: https://codeday.me/bug/20191030/1965235.html