深度学习模型训练速度分析

深度学习模型训练速度分析

首先深度学习模型的训练速度收到以下几个因素的影响

  • 显存大小
  • 显卡计算速度及显卡数量
  • 数据加载速度
    • CPU频率及核心数
    • 磁盘IO速率
    • 数据大小
    • 数据处理步骤
  • 模型大小

下面逐个进行分析:

首先是显存大小,这个显而易见,显存大得显卡可以将batch_size的值设置的高,这样同时可以处理的数据量多,速度自然快

显卡计算速度和显卡数量因素也很明显,4090的计算速度肯定是比1080ti的计算速度快,训练起来肯定也更快,当你有多个显卡的时候,你就可以进行分布式训练,多卡同时跑模型,速度肯定也会提升。

数据加载速度这个是很多人会忽视的一个重要因素,为什么数据加载速度也很重要,因为如果你的数据加载的很慢,即使你有很多A100显卡,但是显卡得不到数据就导致长时间处于等待状态,训练速度也不会得到提升。比如很多人在训练的时候通过nvidia-smi命令查看显卡状态

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03              Driver Version: 535.54.03    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 4090        On  | 00000000:01:00.0 Off |                  Off |
| 30%   37C    P2              63W / 450W |  22561MiB / 24564MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce RTX 4090        On  | 00000000:82:00.0 Off |                  Off |
| 31%   44C    P2              78W / 450W |  22561MiB / 24564MiB |    100%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|

发现显存虽然已经跑满了,但是GPU-Util 的利用率很低,甚至只有10%左右,这就说明你的GPU利用的不够充分,很有可能是由于你的数据加载速度过慢,导致GPU长时间处于等待状态导致的。

那么数据加载速度取决于什么呢,首先是CPU的频率,这个其实不同的机器CPU频率相差不大,但是CPU的核心数,影响还是挺大的,比如你只有一台2核4线程的CPU,那么你只能够给你的GPU分配4个线程进行数据处理,但是如果你有一台8核16线程的CPU,那么你就能够给你的GPU分配16个线程进行数据处理。速度肯定更快。然后就是数据大小和数据处理步骤,这个也很简单,你的数据是1024×1024的图片肯定加载速度要比214×214的图片更慢,另外如果你的数据在进行处理之前要进行拼接,旋转,裁剪等一系列前置操作,那肯定也是需要消耗时间的。

还有一个影响比较大的因素就是磁盘的IO速率,建议有条件用使用NVMe协议的高速固态硬盘存储你的训练数据,不要使用机械硬盘或者采用SATA协议的早期固态硬盘存储数据,这个对于数据加载速度影响是非常大的

最后就是模型的大小,很显然模型大的话,计算多,就慢,模型小,计算少,就快

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿000001号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值