深度学习期间GPU和CPU的表现

32次观看(最近30天)
你好,
我需要在深度学习过程中知道GPU和CPU的作用。即他们每个人在培训期间做什么?
另外,是否可以测量在内存和GPU之间传输数据所需的开销时间?
任何帮助都将受到赞赏!

接受的答案

大卫·威灵汉(David Willingham)
编辑:大卫·威灵汉(David Willingham) 2020年10月22日
你好 Ali al-Saegh ,,,,
对于培训,您可以使用CPU或GPU。对于某些可以长时间训练CPU的深度学习问题,此类图像分类,GPU上的培训的数量级更快。通常,如果您可以访问合理强大的GPU进行培训。当您需要扩展并运行并行作业以在无法访问多个GPU的计算机上,CPU可以提供帮助。一个例子,运行实验通过使用该实验来调整超参数来调整超参数 实验经理
对于推理(调用训练有素的模型),CPU通常就足够了。作为图像Classiciation的示例,您可以在CPU上获得〜30个预测 /秒。但是,如果您需要非常高的帧速率或需要运行批处理作业,则使用GPU可以帮助您获得更快的结果。
在传输数据的间接费用上, 这里 是讨论它的帖子。它显示了几种方法,您可以使用各种时间函数来测量GPU上的执行时间。但是,我认为数据传输时间不是CPU / GPU之间的决定因素。
我的建议:
训练单个模型
如果您可以在本地或通过 云平台 ,创建测试以检查您的培训是否更快地收敛。好消息是这很容易做到。简单地:
  1. 将“执行环境”设置设置为“ CPU”训练
  2. 开始培训您的模型,监视器培训进度图。记下每个时期需要多长时间进行训练。
  3. 停止训练。
  4. 将“执行环境”设置设置为“ gpu”训练
  5. 开始培训您的模型,监视器培训进度图。记下每个时期需要多长时间进行训练。
  6. 停止训练。
在大多数情况下,您会观察到GPU更快。
希望这有助于回答您的问题。
问候,
4条评论
大卫·威灵汉(David Willingham)
嗨,阿里,
这似乎根本不是不合理的。我的建议是查看哪些工作流程最好的工作流程,即。CPU和GPU。CPU更适合围绕培训的平行工作流程,GPU用于培训单个网络。使用通用网络时,MATLAB可以开箱即用。金宝app
但是,如果您真的想修补并建立自己的训练程序,将它们兼有两者,我建议您希望自己建立自己的训练 定制培训循环 。这是将其使用的示例 使用自定义培训循环并行计算 您可以开始。
大卫

登录发表评论。

更多答案(0)

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!