baidu_35098784
2016-05-30 00:18
采纳率: 0%
浏览 1.8k

相同输入,为什么两个gpu的运算结果不同?

利用cuda进行多gpu编程,为什么在相同输入的情况下,两个gpu的输出却不相同?
反复尝试多次,每次都是这种情况,百思不得其解,求指示。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2016-05-30 03:49

    这是有可能的,因为浮点数精度的问题,计算先后顺序不同可能结果不同,看如下例子:
    10^10-10^10+10^-10
    10^10+10^-10-10^10
    在数学上两者等价的
    但是因为浮点数精度问题,很可能前者的结果是10^-10,后者的结果是0
    GPU运算是并行运算,所以顺序不可控,导致结果存在不同。

    评论
    解决 2 无用
    打赏 举报
  • shiter 2016-05-30 05:55

    可以在多阶段输出上加上打印日志,要么就是数据加锁,还有一楼高手说的问题

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题