英伟达DALI加速技巧:让数据预处理速度比原生

参与:一鸣、嘉明、思

你的数据处理影响整个训练速度,如果加上英伟达 DALI 库,处理速度比原生 PyTorch 也能快上四倍。

深度学习的加速上,除了对训练和推理过程的加速之外,还有对数据加载和预处理阶段的加速。这一阶段也尤为关键,因为数据处理 pipeline 的处理速度也影响着整体的流程效率。

近日,有开发者介绍了如何使用 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。

DALI 设计之初就是用来帮助用户突破数据预处理的瓶颈,使得模型的训练和推理能够达到最高的效率。其主要设计是用于在 GPU 上的预处理,但大多数操作也可在 CPU 上实现。

主要特征

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

DALI 在 MXNet 上训练 ResNet50 的性能表现。

使用 DALI 重构数据预处理 pipeline

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

DALI 的内存占用问题。

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

因此,使用 DALI 加速数据预处理需要重新构建整个 pipeline。在教程中,作者分别介绍了构建 CPU pipeline 和 GPU pipeline 的方法。

构建 CPU pipepline

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

首先,重新加载并导入 DALI。

然后构建基于 CPU 的 pipeline。

在这里设置一下哪些操作应当由 CPU 运行。

然后开始相应的操作。如解码:

以及 resize:

CropMirrorNormalize 的操作由 GPU 进行。

当然,还需要从 CPU 到 GPU 的转移过程,这一过程使用 PyTorch 进行,作者在教程中也给出了相应的代码。

构建基于 GPU 的 pipeline

当模型较大(如使用 ResNet50)的时候,基于 CPU 的 pipepline 效果较好,而在类似于 AlexNet 或 ResNet18 这样的小模型上,CPU 的处理还是跟不上 GPU 的数据处理速度。其主要原因在于,GPU pipeline 会降低近一半的批大小。

为了解决这个问题,作者建议将验证 pipepline 从 GPU 中关掉,直到每个 epoch 的最后需要的时候再开启。

效果评价

以下是作者在 ResNet18 中使用的最大批量大小:

因此通过合理应用这一系列修改,DALI 可以使得最大批量大小在 CPU 或 GPU 模式下提升 50%

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

可以看到,即使是 CPU,其处理速度也达到了每秒 1800 张图像,速度超过了 TorchVision。

所有的测试都在 Google Cloud V100 实例下运行:包含 12 个 vCPU(6 个物理内核),78GB 内存,以及使用 ApexFP16 进行训练。

因此,通过 DALI,一个 Tesla V100 GPU 就可以达到将近每秒 4000 张图像。接近英伟达有 8 个 V100 GPU 的 DGX-1 的性能,尽管使用的是小模型

相关推荐
新闻聚焦
猜你喜欢
热门推荐
  • 亚洲和亚洲人正在以其特有的方式重塑世

      群众网北京6月12日电 6月11日,全国行将亚洲化吗?主题研讨会在北京举行。举世战略家、美国国家谍报委员会顾问帕拉格康......

    06-13    来源:未知

    分享
  • 共抗疫情,温商在行动!

      连日来,新型冠状病毒感染的肺炎疫情牵动人心。当“白衣战士”们冲在前线治病救人时,一群温商也发挥所长、驰援疫情、......

    01-30    来源:网络整理

    分享
  • 我国玉米核心种质黄早四“密码”破译

      赵久然引见,玉米是环球总出产最大的粮食作物,具备丰厚的表型和基因组多样性。中国作为全国上最大玉米生打造国之一,......

    03-22    来源:未知

    分享
  • 华为P30/P30 Pro正式发布:4000万像素摄像头

      经过大约一个月的连续泄密,华为终于在巴黎的发布会活动上宣布了其新旗舰P30和P30 Pro手机。正如您所期望的那样,这两款......

    03-27    来源:未知

    分享
  • 企学界共议“数字经济人才培养” 校企“

      数字经济的竞争在一定程度上就是数字经济人才的竞争,是数字经济产教融合人才培养效率的竞争。陕西省人民政府研究室......

    06-02    来源:未知

    分享
  • YC将停止中国分支运营 陆奇团队独立打造

      国创始人陆奇表示,自己已成立了新的基金,会进行全面本地化独立运营,这也是他的第一个创业项目。而YC美国总部将停止......

    11-22    来源:未知

    分享
  • 嘉楠耘智上市背后,比特币矿机产业的七

      从第一台ASIC矿机问世到如今,矿机产业经历了天翻地覆的变化。站在纳斯达克,接受全世界注目的是嘉楠耘智的高管们,但......

    11-22    来源:未知

    分享
  • 美国力求成为首个太空军事化国家

      此前吐露的美国太空兵器包含X-37B轨道试验漫游器,是一款可几回再三使用的航天器。此图显示,2017年,这款遨游器在佛罗里......

    03-22    来源:未知

    分享
  • 身兼多职的Bakkt,能否成为比特币的“引

      都说2018年是区块链元年,虽然整整一年里,以比特币为首的加密货币圈深陷于水深火热的深渊。然而在加密世界之外的一端......

    03-23    来源:未知

    分享
  • 中国制定了单基因遗传性心血管疾病基因

      新华社北京3月24日电(记者李斌)由专家用时一年半、频仍修正拟订的《单基因遗传性心血管疾病基因诊断指南》24日在《中......

    03-26    来源:未知

    分享
返回列表
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。