GPU 选型
平台分配GPU、CPU、内存的机制为:按购买的 GPU 数量成比例分配 CPU 和 内存,GPU 云容器(算力市场)显示的 CPU 和 内存 均为每 GPU 分配的 CPU 和 内存 ,如果租用两块 GPU,那么 CPU 和 内存 就 x2。此外 GPU 非共享,每个实例都是独占 GPU 资源。
一. 选择CPU
CPU非常重要!尽管CPU并不直接参与深度学习模型计算,但CPU需要提供大于模型训练吞吐的数据处理能力。我们通常为每块GPU分配固定数量的CPU逻辑核心。理想情况下,模型计算吞吐随GPU数量线性增长,单GPU的合理CPU逻辑核心数分配可以直接线性扩展到多GPU上。平台的算力实例提供了多种CPU分配规格。每块GPU应配备至少4~8核心的CPU,以满足多线程的异步数据读取。分配更多的核心通常不会再有很大的收益,此时的数据读取瓶颈通常源于Python的多进程切换与数据通信开销(如使用PyTorch DataLoader)。
高性能CPU
- RTX3090 用到的 Intel(R) Xeon(R) CPU E5-2680 v4 和 AMD EPYC 7H12 64-Core Processor
- A4000 用到的 Intel(R) Xeon(R) CPU E5-2680 v4
- Telsa P40用到的 Intel(R) Xeon(R) CPU E5-2680 v4
- RTX3080 用到的 AMD EPYC 7742 64-Core Processor
服务器的CPU一般不如桌面CPU的主频高,但是核心数量多。因此您从以前使用桌面CPU切换到服务器CPU上后,需要充分利用多核心的性能,否则无法发挥服务器CPU的性能。
二. 选择GPU
目前平台上提供的4种规格的GPU型号,后续会陆续推出其它型号的GPU供客户选择。
GPU的数量选择与训练任务有关。一般我们认为模型的一次训练应当在24小时内完成,这样隔天就能训练改进之后的模型。以下是选择多GPU的一些建议:
1块GPU。适合一些数据集较小的训练任务,如Pascal VOC等。 2块GPU。同单块GPU,但是你可以一次跑两组参数或者把Batchsize扩大。 4块GPU。适合一些中等数据集的训练任务,如MS COCO等。 8块GPU。经典永流传的配置!适合各种训练任务,也非常方便复现论文结果。
三. 选择内存
内存在充足的情况下一般不影响性能,但是由于实例相比本地电脑对内存的使用有更严格的上限限制(本地电脑内存不足会使用硬盘虚拟内存,影响是速度下降),比如租用的实例分配的内存是64GB,程序在训练时最后将要使用64GB,此时超过限制的这一时刻进程会被系统Kill导致程序中断,因此如果对内存的容量要求大,请选择分配内存更多的主机或者租用多GPU实例。如果不确定内存的使用,那么可以在实例监控中观察内存使用情况。