GFlops的数量如何影响神经网络的训练速度

时间:2018-04-04 16:35:10

标签: tensorflow neural-network computation

如果一个gpu / cpu有两倍的GFlops,那么另一个意味着该设备上的神经网络将训练两倍的速度?

1 个答案:

答案 0 :(得分:1)

每秒FLOP或浮点运算是衡量性能的指标,意味着计算机执行计算的速度有多快。 GFLOP简直就是Giga FLOP。因此,拥有GFLOP值高2倍的GPU非常有可能加快培训过程。然而,2的因素将是一种上限,因为你将有其他部分不依赖于计算能力,如内存速度,RAM或甚至其他条件,如GPU / CPU的冷却系统和其他(是的,这可以影响计算速度)。在这里你应该问一下GPU / CPU计算实际花费了多少培训时间?如果它是80%,那么你可以显着加快训练,如果它是20%,那么可能不是。 如果您确定大部分时间都是通过GPU计算完成的,那么您现在应该采用的是影响FLOP金额的因素:

  1. 核心数。如果系统有更多的内核,它有更多的FLOP(更多并行计算),但这只有在你的代码可以非常可并行化的情况下才有用,并且GPU(比如说减少两倍的内核)还不足以执行所有这些操作一下子。因此,如果是这种情况,现在你使用2倍以上的并行计算,那么训练速度 - 降低。这更适用于大型卷积网络,但不能完全连接或重复使用。
  2. 核心频率。如果GPU具有更高的核心频率 - 它可以更快地计算。这部分非常重要,如果您的GPU具有更高的频率,那么训练将加速任何类型的神经网络。
  3. 建筑。您可能听说过不同的GPU架构,如Pascal,Tesla等。因此该部分可以影响在单个周期中执行的指令的数量。换句话说,在一个处理器周期中执行了多少指令,并且我们在一秒钟内具有该周期的“频率”。因此,如果一个架构产生两倍的FLOP,那么它也很可能减少与前一段相似的训练时间。
  4. 因此很难说你会从更高的FLOP数量中获得多少收益。如果您使用两个gpus,那么您将增加2个FLOP,类似于第1段。使用两个GPU也会增加GPU内存,如果单个GPU不够,并且代码必须经常从内存中读取数据,这将有所帮助。

    因此,FLOP对训练速度的影响非常复杂,因此它将取决于很多因素,例如你的网络是如何并行的,如何实现更高的FLOP数量,内存使用率等。