我在某处读到“除非你有 Tesla 卡,否则在任何最近的卡(Maxwell 和 Pascal 自 2014 年以来)上的 GeForce、Quadro 和 Titan 卡上,float64 比 float32 慢 32 倍。”
所以我想知道 float32 的计算是否会比特斯拉 gpu 上的 float64 更快,或者性能保持不变。我对两个向量相乘所花费的时间特别感兴趣。
当然,float32 会比 float 64 占用更少的内存。但是对于我的应用程序来说,内存是没有问题的。
我在某处读到“除非你有 Tesla 卡,否则在任何最近的卡(Maxwell 和 Pascal 自 2014 年以来)上的 GeForce、Quadro 和 Titan 卡上,float64 比 float32 慢 32 倍。”
所以我想知道 float32 的计算是否会比特斯拉 gpu 上的 float64 更快,或者性能保持不变。我对两个向量相乘所花费的时间特别感兴趣。
当然,float32 会比 float 64 占用更少的内存。但是对于我的应用程序来说,内存是没有问题的。
所以我想知道 float32 的计算是否会比 Tesla GPU 上的 float64 更快,或者性能保持不变。
32 位浮点在所有 NVIDIA GPU 上具有更高的理论最大吞吐量。K20c 是计算能力为 3.5 的 GPU,您可以在此处看到,与 float64 相比,float32 的每个 SM 每个时钟的最大 FMAD 指令吞吐量是 float64 的三倍。其他指令可能有更大的性能差异。
我对两个向量相乘所花费的时间特别感兴趣。
这将是特定于实现的,并且可能取决于 Pytorch 内部的工作方式。这与CUDA没有直接关系。
当然,float32 会比 float 64 占用更少的内存。但是对于我的应用程序来说,内存是没有问题的。
但内存带宽可能是,float64 的峰值内存吞吐量是 float32 的一半。64 位类型还可能引入双向共享内存带冲突,其中 32 位类型没有。