- +1
英伟达DALI加速技巧:让数据预处理速度比原生PyTorch快4倍
机器之心
选自towardsdatascience
作者:Pieterluitjens
机器之心编译
参与:一鸣、嘉明、思
你的数据处理影响整个训练速度,如果加上英伟达 DALI 库,处理速度比原生 PyTorch 也能快上四倍。

近日,有开发者介绍了如何使用 NVIDIA Data Loading Library(DALI),以及使用这个库进行数据预处理加速的方法。DALI 和 TensorFlow 自带的 DataLoader 类似,是一个专门用于加速数据预处理过程的库。
在一篇博客中,开发者表示,该库不仅可以进行 GPU 加速,也可以在 CPU 上构建一个完整的数据预处理流程。如果在 Tesla V100 上做测试,PyTorch+DALI 的处理速度能达到 4000 images/s,比原版 PyTorch 要快近 4 倍。
支持多个框架,针对预处理
英伟达数据加载库 DALI 是一个便捷式开源库,用于图像或视频的解码及增强,从而加速深度学习应用。通过并行训练和预处理过程,减少了延迟及训练时间,并为当下流行的深度学习框架中的内置数据加载器及数据迭代器提供了一个嵌入式替代器,便于集成或重定向至不同框架。
开发人员可以在 GPU 上运行他们的数据处理通道,从而减少训练神经网络的时间。而 DALI 实现了数据处理 pipeline 可移植,因为可以轻松地重定向至 TensorFlow,PyTorch 和 MXNet。

主要特征
易于使用的 Python API
在多个 GPU 之间显式地缩放
加快图像分类(ResNet-50)和目标检测分类(SSD)工作流
灵活的计算图使得开发人员可创建自定义的数据处理 pipeline
支持多种格式 - LMDB、RecordIO、TFRecord、COCO、JPEG、H.264 以及 HEVC
开发人员可添加自定义的图像或视频处理 operator

使用 DALI 重构数据预处理 pipeline
内存占用大是 DALI 在加速数据预处理中面对的一个重要问题。随着批大小的上升,DALI 的内存占用会变得更大。这一问题现在还没有得到修复。

而和其他的数据预处理工具相比,DALI 能够最大处理的批大小相比 TorchVision 少了一半。

构建 CPU pipepline
使用 CPU 进行数据预处理的时候,常用的做法是让 CPU 处理解码和 resize 的工作,而 CropMirrorNormalize 这样的工作放到 GPU 上。由于使用 DALI 将输出传入 GPU 中就会占用很大的内存,因此作者构建了一个完全基于 CPU 的 pipeline。
首先,重新加载并导入 DALI。






构建基于 GPU 的 pipeline
当模型较大(如使用 ResNet50)的时候,基于 CPU 的 pipepline 效果较好,而在类似于 AlexNet 或 ResNet18 这样的小模型上,CPU 的处理还是跟不上 GPU 的数据处理速度。其主要原因在于,GPU pipeline 会降低近一半的批大小。
为了解决这个问题,作者建议将验证 pipepline 从 GPU 中关掉,直到每个 epoch 的最后需要的时候再开启。
效果评价
以下是作者在 ResNet18 中使用的最大批量大小:

而在 Shufflenet V2 0.5 上,如果批大小为 512,则 DALI GPU 和 CPU 能够处理的批大小如下:

所有的测试都在 Google Cloud V100 实例下运行:包含 12 个 vCPU(6 个物理内核),78GB 内存,以及使用 ApexFP16 进行训练。
因此,通过 DALI,一个 Tesla V100 GPU 就可以达到将近每秒 4000 张图像。接近英伟达有 8 个 V100 GPU 的 DGX-1 的性能,尽管使用的是小模型。
参考链接:
https://towardsdatascience.com/nvidia-dali-speeding-up-pytorch-876c80182440
本文为机器之心编译,转载请联系本公众号获得授权。
✄------------------------------------------------
加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com
投稿或寻求报道:content@jiqizhixin.com
广告 & 商务合作:bd@jiqizhixin.com
原标题:《英伟达DALI加速技巧:让数据预处理速度比原生PyTorch快4倍》
本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。





- 报料热线: 021-962866
- 报料邮箱: news@thepaper.cn
互联网新闻信息服务许可证:31120170006
增值电信业务经营许可证:沪B2-2017116
© 2014-2025 上海东方报业有限公司