CUDA中的双精度浮点

cud*_*dev 14 floating-point cuda gpu gpgpu

CUDA是否支持双精度浮点数?

另外,同样的原因是什么?

Pau*_*l R 13

如果您的GPU具有计算能力1.3,那么您可以进行双精度.您应该知道,1.3硬件每个MP只有一个双精度FP单元,必须由该MP上的所有线程共享,而有8个单精度FPU,因此每个活动线程都有自己的单精度FPU.换句话说,您可能会发现双精度性能比单精度高8倍.

  • 呵呵我没注意到这一年.在我评论:)之前,我查看了这个功能.我正在为我的客户工作的卡只有3.0的计算能力,它仍然只有单精度的一半.它自6.0以来一直得到全力支持...可惜.谢谢,即使这是7岁! (2认同)
  • @Suparshva啊我明白了.不,我在结尾处的第一条评论说"......但我宁愿把精确度从表现上拿下来......"这意味着我最终使用的是单精度.我也没有使用任何基于FFT的解决方案,因为我的特定用例不需要它(即使我在2D中实现了卷积). (2认同)

小智 11

作为提示:

如果要使用双精度,则必须将GPU架构设置为sm_13(如果您的GPU支持它).

否则它仍然会将所有双打转换为浮点数并仅发出警告(如faya的帖子中所示).(如果你因为这个问题得到错误,非常烦人:-))

旗帜是: -arch=sm_13


Edr*_*ric 9

根据Paul R的评论,Compute Capability 2.0设备(又名Fermi)具有更高的双精度支持,其性能仅为单精度的一半.

这篇Fermi白皮书详细介绍了新设备的双重性能.