静态图很快.动态图很慢.有没有具体的基准证明这一点?

sta*_*low 1 torch tensorflow mxnet pytorch tensorflow-gpu

我看到了一些关于tensorflow和的基准pytorch.Tensorflow可能更快,但似乎不是更快,甚至有时更慢.

是否有关于静态图和动态图专门测试的基准测试,证明静态图比动态图快得多?

Yar*_*tov 5

更确切地说,速度优势来自"使用图形重写的延迟执行".

它通常与显式图框架(Theano/TF)相关联,但是如果有足够的工程设计,您可以将它添加到执行模型,如numpy/PyTorch,它们没有显式图形.请参阅Bohrium,了解黑客进行重写的例子.

请注意,此功能的存在使得框架对原型设计不太友好,因此如果将其添加到PyTorch,您将会遇到人们在TensorFlow中抱怨的相同问题

  1. 延迟执行意味着可以在很晚以后触发异常,而不是在您输入有问题的行时触发
  2. 重写意味着现在可以在您未创建的节点中抛出错误,从而提供无法提供信息的错误消息

就性能而言,这是TensorFlow中的玩具基准测试,当你打开图形重写时,它显示了5倍的加速.

我精心设计了一个内存带宽瓶颈的例子,所以图形重写(cwise fusion)很明显会在那里提供显着的速度提升.对于生产LSTM模型谷歌在启动图优化时报告了1.8加速(通过XLA)