Skip to content

GPU 选型

平台分配GPU、CPU、内存的机制为:按购买的GPU数量成比例分配CPU和内存,GPU云容器显示的CPU和内存均为每GPU分配的CPU和内存,如果租用两块GPU,那么CPU和内存就x2。此外GPU非共享,每个实例都是独占GPU资源。

选择CPU

CPU非常重要!尽管CPU并不直接参与深度学习模型计算,但CPU需要提供大于模型训练吞吐的数据处理能力。

我们通常为每块GPU分配固定数量的CPU逻辑核心。理想情况下,模型计算吞吐随GPU数量线性增长,单GPU的合理CPU逻辑核心数分配可以直接线性扩展到多GPU上。Damodel平台的算力实例提供了多种CPU分配规格。每块GPU应配备至少4~8核心的CPU,以满足多线程的异步数据读取。分配更多的核心通常不会再有很大的收益,此时的数据读取瓶颈通常源于Python的多进程切换与数据通信开销(如使用PyTorch DataLoader)。

服务器的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实例。如果不确定内存的使用,那么可以在实例监控中观察内存使用情况。