晨涧云文档

首页

目录

YOLO 模型训练显卡性能测试

YOLO目前计算机视觉领域最流行的目标检测和图像分割模型。YOLO 一般需要基于图像标注数据对模型进行训练,因此 GPU 资源变成了一个必需项,现在越来越多的人通过算力云平台租用 GPU 的方式来进行 YOLO 的模型训练或者推理。

晨涧云支持 YOLO 容器镜像,通过 云容器镜像 查看当前云容器支持的镜像。

显卡选择及测试环境

显卡选择

这里选择 GPU 算力平台上最常见的三张显卡:3090 24G、4090 24G、A100 40G 进行YOLO模型训练的测试。

先来看下这3张显卡的参数对比:

RTX3090RTX4090A100 40G
架构AmpereAda LovelaceAmpere
CUDA核心数10,49616,3846,912
显存容量24 GB GDDR6X24 GB GDDR6X40GB HBM2
显存带宽936 GB/s1,008 GB/s1,555 GB/s
TDP功耗350W450W250W
FP32 算力35.6 TFLOPS82.6 TFLOPS19.5 TFLOPS
Tensor FP16 算力142 TFLOPS330 TFLOPS312 TFLOPS

CPU和内存

CPU:16核
内存:48GB

测试模型及数据集

训练模型:yolo11n.pt
训练数据集:coco.yaml

参数控制

因为原始的 coco 数据集较大,为了节省训练测试的时间,仅使用20%的样本进行训练,设置 fraction = 0.2 ;因为只是测试显卡性能,这里仅训练3轮,设置 epochs = 3 ;同时配置 batch_sizes = [16, 32, 64, 128] ,测试每个 batch_size 下的训练耗时。

控制其他的训练参数保持一致,图像大小使用640。


统计每张显卡模型训练3轮 总耗时平均每轮Epoch耗时 ,同时采集训练过程中的GPU指标:GPU利用率显存占用 等。

3090 模型训练测试

3090-YOLO-模型训练测试结果.png#790px #250px

4090 模型训练测试

4090-YOLO-模型训练测试结果.png#790px #250px

A100 模型训练测试

A100-YOLO-模型训练测试结果.png#790px #250px

测试结果分析

从 GPU 使用指标分析,3090 和 4090 都是 24GB 的显存,3090 在batch_size=64的时候已经接近性能上限;在 batch_size=128 的时候3090和4090显存几乎占满,峰值GPU利用率接近压满,性能出现衰退;A100 凭借其 40GB 的显存及较大的显存带宽,在训练场景性能的上限更高。

⚠️ 注意:因为图片需要在CPU解码, batch_size 较大的时候CPU的负荷会上升,当CPU性能不足时会变成瓶颈,从而制约 GPU 的性能。

因此,针对大 batch_size 的训练场景,需要控制:

  1. 配置更多的CPU核数,比如 batch_size=128 建议16核及以上

  2. 训练参数 workers 调到更大,比如 batch_size=128 建议 workers >= 8

如果我们使用每轮Epoch的平均耗时来评估显卡性能,将上述测试结果汇总成表格:

BatchSizeRTX3090RTX4090A100 40G
16平均Epoch耗时(s)178.7163.6154.7
32平均Epoch耗时(s)140.7114.5118.3
64平均Epoch耗时(s)134.0104.6108.0
128平均Epoch耗时(s)140.2134.7111.9

可以看到,A100 作为训练神卡,确实在整体性能上是最稳的。算力层面,从 平均Epoch耗时 分析执行效率,比较 batch_size=64 下的指标,A100 跟 4090 的性能接近,3090 比它们慢 30% 左右

总结

  • 如果 YOLO 训练的图像数据是普通大小,并且不需要使用较大的 batch_size 来提升训练精度,主流的 3090 和 4090 是不错的选择,建议 batch_size 最大 64 左右;

  • 如果需要更快出结果可以选择 4090 ,当然相应的费用也会高一些;

  • 如果训练数据较小,同时 batch_size 也使用较小的配置,可以选择更低端的显卡,比如 3080 20G ,有更高的整体性价比。

  • 如果训练的图像尺寸较大,或者想用更大的 batch_size 来提升模型训练的精度,建议使用 A100 ,更大的显存不至于让训练过程 OOM,同时更大的显存带宽保证训练过程的效率和稳定性。

  • 另外对于使用较大 batch_size 的场景,魔改的 4090 48G 也是一个不错的选择,毕竟4090 算力与 A100 相当,并且魔改后的48G显存让大 batch_size 的训练有更大的施展空间。


创建YOLO云容器实例