热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NVIDIADeepLearningExamples仓库上线飞桨ResNet50模型,其训练速度超PyTorch

你还在头疼于经典模型的复现吗?不知何处可以得到全面可参照的Benchmark?为了让开发者可以快速复现顶尖的精度和超高的性能,NVIDIA

309e46ff3ac4999b2e2206d56580b08c.gif

你还在头疼于经典模型的复现吗?

不知何处可以得到全面可参照的Benchmark?

为了让开发者可以快速复现顶尖的精度和超高的性能,NVIDIA与飞桨团队合作开发了基于ResNet50的模型示例,并将持续开发更多的基于NLP和CV等领域的经典模型,后续陆续发布的模型有BERT、PP-OCR、PP-YOLO等,欢迎持续关注。

深度学习模型是什么?

深度学习包括训练和推理两个环节。训练是指通过大数据训练出一个复杂的神经网络模型,即用大量标记过的数据来“训练”相应的系统,使之可以实现特定的功能。推理是指利用训练好的模型,基于新数据推理出各种结论。深度学习模型是在训练工作过程中生成,并被保存用于推理当中。

80c4272817d18787090d739a210a299b.png

图1: 深度学习训练推理示意图

NVIDIA Deep Learning Examples仓库

全新上线飞桨ResNet50

NVIDIA Deep Learning Examples仓库上线了基于飞桨实现的ResNet50模型的性能优化结果,该示例全面适配各类NVIDIA GPU和各种硬件拓扑(单机单卡、单机多卡),性能极致优化。值得一提的是,Deep Learning Examples中飞桨ResNet50模型训练速度已超过对应的PyTorch版ResNet50。

4af7928a768ca5f495ac986a1026b4bc.png

图2: NVIDIA Deep Learning Examples仓库中基于飞桨与PyTorch的ResNet50模型在同等GPU配置下的训练性能比较,GPU配置为NVIDIA DGX A100(8x A100 80GB)。  *数据来源:[1][2]

NVIDIA Deep Learning Examples仓库中

飞桨ResNet50有哪些优势?

  • 优势一:通过使用DALI等工具,加速GPU数据预处理性能

NVIDIA Data Loading Library(DALI)专注于使用GPU加速深度学习应用中的数据加载和预处理。深度学习数据预处理涉及到复杂的、多个阶段的处理过程,如ResNet50模型训练过程中,在CPU上处理图片的加载、解码、裁剪、翻转、缩放和其他数据增强等操作会成为瓶颈,限制训练和推理的性能和可扩展性。DALI将这些操作转移到GPU上,最大限度地提高输入流水线的吞吐量,并且其中数据预取、并行执行和批处理的操作对用户是透明的。

  • 优势二:通过使用AMP、ASP等工具,提高推理性能

飞桨内置支持AMP(自动混合精度)及ASP(自动稀疏化)模块。AMP模块可在模型训练过程中,自动为算子选择合适的计算精度(FP32/FP16),充分利用Tensor Cores的性能,在不影响模型精度的前提下,大幅加速模型训练。

ASP模块实现了一个工作流将深度学习模型从稠密修剪为2:4的稀疏模式,经过重训练之后,可恢复到与稠密模型相当的精度。稀疏模型可以充分利用A100 Tensor Core GPU的加速特性,被修剪的权重矩阵参数存储量减半,并且可以获得理论上2倍的计算加速,从而大幅提高推理性能。

  • 优势三:通过集成TensorRT,优化推理模型

飞桨推理集成了TensorRT,称为Paddle-TRT。它可以把部分模型子图交给TensorRT加速,而其他部分仍然用飞桨执行,从而达到最佳的推理性能。

  • 优势四:丰富的Benchmark

NVIDIA Deep Learning Examples仓库中

有哪些Benchmark?

NVIDIA Deep Learning Examples仓库中的Benchmark主要包含训练精度结果、训练性能结果、推理性能结果、Paddle-TRT性能结果几个方面。

  • 训练精度结果

a6efdd352f5c7ac5e2cb1298dee3b7ba.png

 图3:训练精度: 

NVIDIA DGX A100 (8x A100 80GB)  数据来源:[1]

278dddcf3cf09214bb5e688b5d9e7d0f.png

图4:集成ASP的提高精度:

NVIDIA DGX A100 (8x A100 80GB) 数据来源:[1]

  • 训练性能结果

f0d874d9b664bc1117932c8b38eab88f.png

图5:训练性能:

NVIDIA DGX A100 (8x A100 80GB) 数据来源:[1]

af444a946812274785d0ffdd3a339689.png

图6:集成ASP的训练性能:

 NVIDIA DGX A100 (8x A100 80GB) 数据来源:[1]

  • 推理性能结果

970698fd67a40a059728b4642d74eb7c.png

图7:推理性能:

NVIDIA DGX A100 (1x A100 80GB) 数据来源:[1]

  • Paddle-TRT性能结果

 4553d4971a2e7e0ca3202e74a35e57c5.png

图8:Paddle-TRT 性能结果:

NVIDIA DGX A100 (1x A100 80GB) 数据来源:[1]

24147d2d66ef2ed500c96760905dccc3.png

图9:Paddle-TRT 性能结果:

NVIDIA A30 (1x A30 24GB) 数据来源:[1]

21f59745bcfff5c5f993be33272731fd.png

图10:Paddle-TRT 性能结果:

NVIDIA A10 (1x A10 24GB) 数据来源:[1]

如何下载NVIDIA Deep Learning Examples

仓库中的飞桨ResNeT50?

登录GitHub NVIDIA Deep Learning Examples仓库后,找到下列选项下载模型源代码即可。

PaddlePaddle/Classification/RN50/1.5

0737f90c6a0eb0fed278b5a79bfd2cf6.png

图11:NVIDIA Deep Learning Examples:

飞桨ResNet50下载页面

飞桨容器如何安装?

容器包含了深度学习框架在运行时所需的所有部件(包括驱动,工具包等),它具有轻量化与可复制性、打包和执行环境合二为一以及简化应用程序部署等优势。因此,被认为是在同一环境中实现“构建、测试、部署”的最佳平台。容器允许我们创建标准化可复制的轻量级开发环境,摆脱来自Hypervisor所带来运行开销。应用程序可以基于Container Runtime运行在“任意”系统中。

NVIDIA与百度飞桨联合开发了NGC飞桨容器,将最新版本的飞桨与最新的NVIDIA的软件栈进行了无缝的集成与性能优化,最大程度的释放飞桨框架在NVIDIA最新硬件上的计算能力。这样,用户不仅可以快速开启AI应用,专注于创新和应用本身,还能够在AI训练和推理任务上获得飞桨+NVIDIA带来的飞速体验。

NGC飞桨容器已经集成到飞桨官网主页。你可以选择“飞桨版本”+“Linux”+“Docker”+“CUDA 11.7”找到对应的容器下载指令。

e03dc76af0a5dc1098209abd4841c182.jpeg

参考《NGC飞桨容器安装指南》下载安装:

https://www.paddlepaddle.org.cn/documentation/docs/zh/install/install_NGC_PaddlePaddle_ch.html

e17ed21dc95955551bbcedc1f09e200c.png

  • 运行结果如下:

97f723557f1a90e07c9afe175ca00e12.png

NVIDIA飞桨容器现已开放免费下载,点击“阅读原文”跳转至飞桨官网《NGC飞桨容器安装指南》页面可获取安装指南。同时,您可扫描下方二维码加入用户体验群,提交体验报告将获得更多精美礼品!

39c0a44600c8eb514ad5bf68ac3d71f0.jpeg

参考资料

[1]NVIDIA Deep Learning Examples仓库中基于飞桨框架的ResNet50性能

https://github.com/NVIDIA/DeepLearningExamples/tree/master/PaddlePaddle/Classification/RN50v1.5

[2] NVIDIA Deep Learning Examples仓库中基于PyTorch的ResNet50训练性能

https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/Classification/ConvNets/resnet50v1.5

拓展阅读

全新AI开发环境来了!NVIDIA产品专家为您解密NGC飞桨容器

揭秘!MLPerf Training v2.0飞桨何以‍力压NGC PyTorch,实现同等GPU配置BERT模型训练性能第一

ac6ca3ed7bde24a84464db1910582ca1.gif

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~


推荐阅读
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 1.如何进行迁移 使用Pytorch写的模型: 对模型和相应的数据使用.cuda()处理。通过这种方式,我们就可以将内存中的数据复制到GPU的显存中去。 ... [详细]
  • AI 学习路线:从Python开始机器学习
    AI 学习路线:从Python开始机器学习 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 掌握 esrally 三步骤:高效执行 Elasticsearch 性能测试任务
    自从上次发布 esrally 教程已近两个月,期间不断有用户咨询使用过程中遇到的各种问题,尤其是由于测试数据托管在海外 AWS 上,导致下载速度极慢。为此,本文将详细介绍如何通过三个关键步骤高效执行 Elasticsearch 性能测试任务,帮助用户解决常见问题并提升测试效率。 ... [详细]
  • 【高效构建全面的iOS直播应用】(美颜功能深度解析)
    本文深入探讨了如何高效构建全面的iOS直播应用,特别聚焦于美颜功能的技术实现。通过详细解析美颜算法和优化策略,帮助开发者快速掌握关键技术和实现方法,提升用户体验。适合对直播应用开发感兴趣的开发者阅读。 ... [详细]
  • 在Heroku上免费部署ASP.NET Core(使用Docker和CircleCI)
    创建ASP.NETCore应用使用命令行即可创建一个模板项目dotnetnewwebapi完整代码https:github.comIbroAspNetCoreHeroku ... [详细]
  • [TensorFlow系列3]:初学者是选择Tensorflow2.x还是1.x? 2.x与1.x的主要区别?
    作者主页(文火冰糖的硅基工坊):https:blog.csdn.netHiWangWenBing本文网址:https:blog.csdn.netHiW ... [详细]
  • CBAM:卷积块注意模块
    CBAM:ConvolutionalBlockAttentionModule论文地址:https:arxiv.orgabs1807.06521简介:我们提出了 ... [详细]
  • pytorch猫狗大战-项目代码各位看官老爷,小白我知道pytorch的这个猫狗大战的代码真是漫天都是,这基本上也就是一个helloworld的程序。我 ... [详细]
  • PyFasterRCNN配置详解与优化指南
    本文主要讲解Faster-RCNN的配置过程,以及配置过程中遇到问题的解决方案。 1.下载工程gitclone--recursivehttps:github.comr ... [详细]
author-avatar
手机用户2502856553
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有