如何选择GPU
1 核心数和线程数
对于深度学习等需要大量并行计算的任务,核心数和线程数是非常重要的指标。一般来说,核心数越多、线程数越多的GPU性能越好。但是,这并不意味着核心数和线程数越多就一定适合您的需求。您需要根据自己的具体任务来判断所需的核心数和线程数。
2 显存容量
显存容量决定了GPU可以用于存储的数据量。对于需要处理大量数据的深度学习任务来说,显存容量非常重要。一般来说,显存容量越大,处理数据的能力越强。
3 GPU数量
GPU的数量选择与训练任务有关。一般我们认为模型的一次训练应当在24小时内完成,这样隔天就能训练改进之后的模型。以下是选择多GPU的一些建议:
1块GPU。适合一些数据集较小的训练任务,如Pascal VOC等。
2块GPU。同单块GPU,但是你可以一次跑两组参数或者把Batchsize扩大。
4块GPU。适合一些中等数据集的训练任务,如MS COCO等。
8块GPU。经典永流传的配置!适合各种训练任务,也非常方便复现论文结果。
我要更多!用于训练大参数模型、大规模调参或超快地完成模型训练。
4 显卡架构
1、NVIDIA的Volta/Turing架构的GPU,例如GTX 20系列和Tesla V100等,都配备了专为低精度计算(如int8/float16)加速的TensorCore。然而,与上一代相比,这些GPU的单精度算力提升并不显著。因此,我们建议在训练模型时使用深度学习框架的混合精度训练来提高计算效率。相较于单精度训练,混合精度训练通常可以提供超过两倍的训练加速效果。
2、另一方面,NVIDIA的Ampere架构的GPU,如GTX 30系列、Tesla A40/A100等,搭载了第三代TensorCore。与前一代相比,这些GPU支持了TensorFloat32格式,可以直接加速单精度训练(PyTorch已经默认开启)。但是,我们仍然强烈建议使用超高算力的float16半精度训练模型,因为这可以在性能方面获得比上一代GPU更明显的提升。
GPU型号简介¶
型号 | 显存 | 单精(FP32) | 半精(FP16) | 详细参数 | 说明 |
---|---|---|---|---|---|
Tesla P40 | 24GB | 11.76 T | 11.76 T | 查看 | 比较老的Pascal架构GPU,对于cuda11.x之前且对大显存有需求的算法是非常不错的选择 |
TITAN Xp | 12GB | 12.15 T | 12.15 T | 查看 | 比较老的Pascal架构GPU,用作入门比较合适 |
1080 Ti | 11GB | 11.34 T | 11.34 T | 查看 | 和TITANXp同时代的卡,同样适合入门,但是11GB的显存偶尔会比较尴尬 |
2080Ti | 11GB | 13.45 T | 53.8 T | 查看 | 图灵架构GPU,性能还不错,老一代型号中比较适合做混合精度计算的GPU。性价比高 |
V100 | 16/32GB | 15.7 T | 125 T | 查看 | 老一代专业计算卡皇,半精性能高适合做混合精度计算 |
3060 | 12GB | 12.74 T | 约24T | 查看 | 如果1080Ti的显存正好尴尬了,3060是不错的选择,适合新手。需要使用cuda11.x |
A4000 | 16GB | 19.17 T | 约76T | 查看 | 显存和算力都比较均衡,适合进阶过程使用。需要使用cuda11.x |
3080Ti | 12GB | 34.10 T | 约70T | 查看 | 性能钢炮,如果对显存要求不高则是非常合适的选择。需要使用cuda11.x |
A5000 | 24GB | 27.77T | 约117T | 查看 | 性能钢炮,如果觉得3080Ti的显存不够用A5000是合适的选择,并且半精算力高适合混合精度。需要使用cuda11.x |
3090 | 24GB | 35.58 T | 约71T | 查看 | 可以看做3080Ti的扩显存版。性能和显存大小都非常够用,适用性非常强,性价比首选。需要使用cuda11.x |
A40 | 48GB | 37.42 T | 149.7 T | 查看 | 可以看做是3090的扩显存版。算力和3090基本持平,因此根据显存大小进行选择。需要使用cuda11.x |
A100 SXM4 | 40/80GB | 19.5 T | 312 T | 查看 | 新一代专业计算卡皇,除了贵没缺点。显存大,非常适合做半精计算,因为有NVLink加持,多卡并行加速比非常高。需要使用cuda11.x |
4090 | 24G | 82.58 T | 165.2 T | 查看 | 新一代游戏卡皇,除显存比较小和多机多卡并行效率低的缺点外,性价比非常高 |