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

标签 linux ssh floating-point kernel 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 编译器错误。在德国, float 用“,”而不是“.”书写。

关于linux - 通过 ssh 在 OpenCL 中的浮点错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516692/

相关文章:

Perl 脚本找不到 Net/SSH/Perl.pm

python - 为什么 math.modf 返回 float ?

matlab - 在 MATLAB 中,给定一些十进制数,有什么有效的方法可以找到自定义浮点二进制的尾数和指数的最小长度?

c - `timer_settime()` 的奇怪行为

linux - FUA,冲洗和订购

linux - Ubuntu 桌面在 Azure xrdp 上不可见

go - 最小正float64值

linux - .inputrc 覆盖 Control+W

c++ - 间接链接库的符号可见性

java - 如何在java中为ssh连接设置密码