在张量流中利用高精度GPU

时间:2018-06-26 01:37:18

标签: python tensorflow hardware

嗨,我正在张量流中读取using GPUs page,我想知道gpu精度性能是否曾经是张量流的一个因素。例如,假设一台机器有两张卡,

  

游戏gpu

+

  

工作站GPU

有没有一种方法可以提供工作站卡的更高精度性能,从而克服时钟速度较慢的情况?

我不确定这些情况是否会在训练后的梯度良好或网络性能或其他任何情况下存在,但我希望获得有关该主题的更多信息!

谢谢。

1 个答案:

答案 0 :(得分:5)

TL; DR

实际上是相反的情况。 TensorFlow之类的框架不太希望获得更高精度的计算。这是由于训练速度较慢且模型较大(内存和碟盘空间更大)。

长版

神经网络实际上受益于使用较低精度的表示形式。 This paper是对该主题的很好的介绍。

  

我们探索的关键发现是深度神经网络可以   使用低精度定点算法进行训练   在操作时应用随机舍入方案   定点数字。

他们使用16位定点数,而不是更高的旋进32位浮点数(有关其差异here的更多信息)。

以下图像是从那张纸上拍摄的。它显示了不同舍入方案的测试误差以及专用于定点表示形式的整数部分的位数。如您所见,红色和蓝色实线(固定为16位)与黑色线(浮动为32位)的错误非常相似。

enter image description here

降低精度的主要好处/驱动因素是计算成本和重量存储。因此,更高精度的硬件将无法提供足够的精度,从而无法弥补较慢的计算成本。

我认为像这样的研究是特定于神经网络特定处理硬件(例如Google's new TPU)规范的重要推动力。即使大多数GPU不支持16位浮点运算,但Google都是working to support it