我应该使用GPU还是CPU进行推理?


13

我正在运行由GPU训练的深度学习神经网络。现在,我想将此部署到多个主机以进行推断。问题是什么条件决定我应该使用GPU还是CPU进行推理?


在下面的评论中添加更多详细信息。

我对此并不陌生,因此非常感谢您的指导。

  • 内存:GPU是K80

  • 框架:Cuda和cuDNN

  • 每个工作负载的数据大小:20G

  • 计算要消耗的节点:每个作业一个,尽管要考虑扩展选项

  • 费用:如果理由合理,我可以负担得起GPU选项

  • 部署:在自己托管的裸机服务器上运行,而不是在云中。

现在,我在CPU上运行只是因为应用程序运行正常。但是出于这个原因,我不确定为什么还要考虑使用GPU。


为了就两种潜在方法之间的比较提供建议,对于其他人了解您的任务的一些细节将很有帮助。例如,您的数据大小是多少,GPU的存储容量是多少,您计划使用的计算节点数,还可以考虑使用哪种map-reduce框架。
Dynamic Stardust

@DynamicStardust ...以及费用。便宜的EC2 CPU节点还是昂贵的ECW GPU节点?这个问题太含糊了。
Spacedman

Answers:


8

@丹@SmallChess,我完全不同意。的确,GPU可以利用许多并行化来进行训练,从而加快训练速度。对于推理,这种并行化可能会少得多,但是CNN仍将从中获得优势,从而可以更快地进行推理。现在您只需要问自己:更快的推理重要吗?我是否需要这种额外的依赖关系(良好的GPU,已安装的正确文件等)?

如果速度不是问题,请使用CPU。但是请注意,根据我的经验,GPU可以使它快一个数量级。


您提出的有趣的观点是,为什么CNN会在推理过程中受益于并行处理?

1
通过训练,并行计算可能会很明显:​​您有多个输入,每个输入都必须前馈,彼此完全独立。对于卷积,将内核乘以多个输入“补丁”。这些也可以并行完成。这就是CNN如此强大的原因:它们不仅需要更少的参数来进行训练,而且还更加并行化,因此使GPU如此强大。我不知道您在做什么,但是我在对图像进行分割(按像素分类),当使用GPU进行推理时,速度得到了极大的提高(> x10)。
Laurens Meeus

@LaurensMeeus我也是这个领域的新手,正在做云虚拟机的成本分析。如果仅训练文本分析而不训练图像,我是否仍将使用GPU进行训练?
Squ1rr3lz

2
@ Squ1rr3lz我应该是95%。每种形式的并行计算都应在GPU上获得优势。我不是该领域的专家,但是考虑到文本分析也具有卷积层(是1D而不是2D),这已经是可以/应该更快的原因之一。如果可能,请自己尝试启用/禁用GPU的影响。
Laurens Meeus

6

在GPU而不是CPU上运行推理将使您获得的速度与训练时几乎相同,而内存开销却很少。

但是,正如您所说,该应用程序可以在CPU上正常运行。如果您到达了推理速度成为应用程序瓶颈的地步,则升级到GPU将缓解该瓶颈。


完全同意。仍然不知道为什么CPU帖子排名最高。
劳伦斯·梅乌斯

1
的GeForce GTX泰坦X提供比16核Intel Xeon E5 CPU倍高5.3和6.7之间的性能-从NVidia的自己的博客-这是远比训练期间所取得的加速降低:devblogs.nvidia.com/...
seanhalle

4

您只需要使用GPU进行培训,因为深度学习需要大量的计算才能得出最佳解决方案。但是,您不需要GPU机器进行部署

让我们以苹果的新iPhone X为例。新款iPhone X具有用于面部检测的高级机器学习算法。Apple员工必须拥有用于培训和验证的机器集群。但是您的iPhone X不需要GPU即可运行模型。


感谢您的解释。那我不明白的是,为什么英伟达(Nvidia)会推广GPU的使用,因为如果CPU能够做到最好的话,那便是最好的推理解决方案。另外,如果谷歌使用CPU完成所有操作,为什么还要推动TPU进行推理呢?它与并行计算有关系吗?
丹丹(Dan)

3
@SmallChess iPhone X是否没有纯粹出于推断的目的就在其中包含一些类似TPU的高级处理器?extremetech.com/mobile/...
劳伦斯Meeus

3
@SmallChess但是为什么不能呢?也许我只是不完全了解。您仍然会在速度上有所改善吗?
Laurens Meeus

2
老实说,NVidia拥有一支出色的营销部门,因此促进使用NVidia GPU进行推销是他们的最大利益。这符合他们的最大利益,而不是您的利益。
seanhalle

1
来自NVIDIA的博客: “258与242帧/秒”为的NVIDIA Tegra X1 VS酷睿i7 6700K CPU执行推断时:devblogs.nvidia.com/...
seanhalle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.