深度学习(大数据人工智能)运行或训练时对CPU的要求高吗

文 / @WordPress主题

虽然CPU的参与方式与深度学习模型计算无关,但其在数据处理方面扮演了一个极为关键的角色。想象一下,一台拥有8块NVIDIA V100 GPU的DGX服务器,它可以每秒处理高达8000张ImageNet图像的ResNet-50图像分类任务,但当我们升级到拥有16块V100 GPU的DGX2服务器时,吞吐量并没有如我们所预期的那样翻倍。这个现象暗示着DGX2服务器的CPU已经成为性能的限制因素。

image-20220105174346711

通常,我们会为每块GPU分配一定数量的CPU逻辑核心。在理想情况下,模型计算吞吐量应该随着GPU数量的增加而线性增长,因此,单个GPU的合理CPU逻辑核心数分配可以直接扩展到多个GPU。对于每块GPU,至少需要分配4到8个核心的CPU,以满足多线程的异步数据读取需求。然而,增加更多的核心通常不会带来显著的性能提升,因为此时的数据读取瓶颈通常源于Python的多进程切换和数据通信开销(例如,使用PyTorch DataLoader)。那么,如何在保持成本控制的同时克服数据读取瓶颈呢?或许您可以在AutoDL平台上尝试一下NVIDIA DALI数据读取加速库,这个库是使用C++和CUDA编写的。根据我们的测试结果,使用单核CPU实例进行数据读取的性能超越了使用基于Python的八核心实例,这无疑为模型训练提供了强大的支持。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。