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

达米安·马特科夫斯基(Damian Matkowski)

如果一个gpu / cpu的GFlops是后者的两倍,那是否意味着该设备上的神经网络的训练速度快两倍?

朝akuk

每秒的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多出两倍,则很有可能会减少培训时间,类似于上一段。

因此,很难说您将从更高数量的FLOP中获得多少收益。如果使用两个GPU,则将类似于第1段,将FLOP增加2。使用两个GPU也将增加GPU内存,如果单个GPU不够,并且代码必须频繁地从内存中读取数据,这将很有帮助。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章