- 主题:浮点数运算跨平台一致性问题
浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
- 来自 水木社区APP v3.5.3
--
FROM 101.82.172.*
密切关注。。我只能跟他们扯硬件不一样,库不一样,编译器不一样等等。
【 在 shazaohuar 的大作中提到: 】
: 浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
:
: \- 来自 水木社区APP v3.5.3
: --
:
发自「今日水木 on Redmi Note 7」
--
FROM 121.69.36.*
我还听说过gpu和某国产dcu上算出来的最终结果的相对误差有1e-5呢
暂时不确定是哪边的问题,抑或是正常的
【 在 shazaohuar (suian) 的大作中提到: 】
: 浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
: - 来自 水木社区APP v3.5.3
--
FROM 159.226.171.*
mpfr
【 在 shazaohuar (suian) 的大作中提到: 】
: 浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
: - 来自 水木社区APP v3.5.3
--
FROM 61.149.143.*
我记得这个是gnu的东西,win上也有?
- 来自 水木社区APP v3.5.3
【 在 vwx 的大作中提到: 】
mpfr
- 来自 水木社区APP v3.5.3
--
FROM 101.82.172.*
基本不可能搞定。
【 在 shazaohuar (suian) 的大作中提到: 】
: 浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
: - 来自 水木社区APP v3.5.3
--
FROM 61.50.110.*
不要用float,用double。
告诉编译器使用sse指令。
算法上做到误差不敏感,防止误差累计。
【 在 shazaohuar 的大作中提到: 】
: 浮点数大量exp, pow运算后如何保证Linux, Windows上结果一致,看了几天发现不太好弄,似乎还跟硬件有关,有有经验的吗?多谢!
:
: - 来自 水木社区APP v3.5.3
: ...................
--来自微水木3.5.11
--
FROM 39.144.43.*
所以年前就放弃了
- 来自 水木社区APP v3.5.3
【 在 yuanmo 的大作中提到: 】
基本不可能搞定。
- 来自 水木社区APP v3.5.3
--
FROM 101.82.172.*
这种除非是用软件模拟浮点运算吧,然后这个软件模拟库能做到在所有平台上一样。
但是性能你肯定无法忍受
--
FROM 114.254.115.*
这个不太可能吧,如果硬件上真的误差到1e-5, 那么说明硬件设计有问题
一般都是1-2ulp
【 在 blitz 的大作中提到: 】
: 我还听说过gpu和某国产dcu上算出来的最终结果的相对误差有1e-5呢
: 暂时不确定是哪边的问题,抑或是正常的
:
--
FROM 64.207.220.*