代码之家  ›  专栏  ›  技术社区  ›  kpie

利用张量流中的高精度GPU

  •  5
  • kpie  · 技术社区  · 7 年前

    嗨,我在看 using GPUs page 在张量流,我想知道GPU的精度性能是否曾经是张量流的一个因素。例如,如果一台机器有两张卡,

    游戏GPU

    +

    工作站GPU

    是否有任何可以提供工作站卡更高精度性能的实现可以克服较慢的时钟速度?

    我不确定这些情况是否会存在于培训后或其他地方的梯度体面或网络表现的背景下,但我想得到更多的有关这个主题的信息!

    事先谢谢。

    1 回复  |  直到 7 年前
        1
  •  5
  •   McAngus    7 年前

    tl;dr

    事实恰恰相反。像TensorFlow这样的框架不太需要更高精度的计算。这是因为训练速度较慢,型号更大(内存和磁盘空间更大)。

    长版

    神经网络实际上受益于使用低精度表示。 This paper is a good introduction to the topic.

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

    它们使用16位定点数字,而不是更高的进动32位浮点数字(有关它们的差异的更多信息,请参见 here. )。

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

    降低精度的主要好处/驱动因素是计算成本和权重存储。因此,更高精度的硬件无法提供足够的精度增加,从而降低计算速度的成本。

    像这样的研究,我认为是神经网络特定处理硬件规范背后的一个巨大驱动因素,例如 google的新tpu 。尽管大多数GPU不支持16位浮点,但Google仍在工作以支持它。

    由于训练速度较慢,型号更大(内存和磁盘空间更大)。

    长版

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

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

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

    下面的图片是从那张纸上取的。它显示了不同取整方案的测试误差以及定点表示整数部分的专用位数。如您所见,实线红蓝(16位固定)与黑线(32位浮动)有非常相似的错误。

    enter image description here

    降低精度的主要好处/驱动因素是计算成本和权重存储。因此,更高精度的硬件不足以提供足够的精度增加,从而降低计算速度的成本。

    像这样的研究我认为是神经网络特定处理硬件规范背后的一个巨大驱动因素,例如 Google's new TPU .尽管大多数GPU不支持16位浮点,但谷歌是 working to support it .

    推荐文章