基于NVIDIA NGC容器安装使用PaddlePaddle
基于NVIDIA NGC容器安装使用PaddlePaddle

PaddlePaddle
PaddlePaddle作为国内首个自主研发的深度学习平台,自2016年正式向专业社区开源,是一个技术先进、功能丰富,涵盖深度学习核心框架、基础模型库、端到端的产业平台。 - 端开发套件、工具和组件以及服务平台。NGC 容器是开始使用 PaddlePaddle 的最简单方法。PaddlePaddle NGC Container 附带了所有依赖项,为开始开发常见应用程序提供了一个简单的地方,例如计算机视觉和自然语言处理 (NLP)。
PaddlePaddle NGC 容器针对 GPU 加速进行了优化,并包含一组经过验证的库,可启用和优化 GPU 性能。此容器还可能包含对 PaddlePaddle 源代码的修改,以最大限度地提高性能和兼容性。该容器还包含用于加速 ETL(DALI、RAPIDS)、训练(cuDNN、NCCL)和推理(TensorRT)工作负载的软件。
先决条件
使用 PaddlePaddle NGC 容器需要主机系统安装以下内容:
有关支持的版本,请参阅Framework Containers Support Matrix和NVIDIA Container Toolkit Documentation。
不需要其他安装、编译或依赖管理。无需安装 NVIDIA CUDA 工具包。
运行PaddlePaddle
要运行容器,请按照NVIDIA 深度学习框架容器用户指南中运行容器一章中的说明发出适当的命令,并指定注册表、存储库和标签。有关使用 NGC 的更多信息,请参阅NGC 容器用户指南。
如果您有 Docker 19.03 或更高版本,启动容器的典型命令是
docker run --gpus all --shm-size=1g --ulimit memlock=-1 -it --rm nvcr.io/nvidia/paddlepaddle:xx.xx-py3
如果您有 Docker 19.02 或更早版本,启动容器的典型命令是:
nvidia-docker run --shm-size=1g --ulimit memlock=-1 -it --rm nvcr.io/nvidia/paddlepaddle:xx.xx-py3
Where:
xx.xxis the container version. For example,22.05.
PaddlePaddle 通过将其作为 Python 模块导入来运行:
$ python -c 'import paddle; paddle.utils.run_check()'
Running verify PaddlePaddle program ...
W0516 06:36:54.208734 442 device_context.cc:451] Please NOTE: device: 0, GPU Compute Capability: 8.0, Driver API Version: 11.7, Runtime API Version: 11.7
W0516 06:36:54.212574 442 device_context.cc:469] device: 0, cuDNN Version: 8.4.
PaddlePaddle works well on 1 GPU.
W0516 06:37:12.706600 442 fuse_all_reduce_op_pass.cc:76] Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 2.
PaddlePaddle works well on 8 GPUs.
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
查看/workspace/README.md容器内部,了解有关开始和自定义 PaddlePaddle 图像的信息。
您可能希望从容器外部的位置提取数据和模型描述以供 PaddlePaddle 使用。要实现这一点,最简单的方法是将一个或多个主机目录挂载为Docker 绑定挂载。例如:
docker run --gpus all -it --rm -v local_dir:container_dir nvcr.io/nvidia/paddlepaddle:xx.xx-py3
注意:为了在 rank 之间共享数据,NCCL 可能需要用于 IPC 的共享系统内存和固定(页面锁定)系统内存资源。操作系统对这些资源的限制可能需要相应增加。有关详细信息,请参阅系统文档。特别是,Docker 容器默认使用有限的共享和固定内存资源。在容器内使用 NCCL 时,建议您通过发出以下命令来增加这些资源:
--shm-size=1g --ulimit memlock=-1
在docker run命令中。
这个容器里有什么?
有关完整的内容列表,请参阅PaddlePaddle 容器发行说明。
此容器映像包含 NVIDIA 版本的 PaddlePaddle 的完整源代码,格式为/opt/paddle/paddle. 它是作为系统 Python 模块预构建和安装的。访问paddlepaddle.org.cn了解更多关于 PaddlePaddle 的信息。
NVIDIA PaddlePaddle 容器针对与 NVIDIA GPU 一起使用进行了优化,并包含以下用于 GPU 加速的软件:
- CUDA
- cuBLAS
- NVIDIA cuDNN
- NVIDIA NCCL (optimized for NVLink)
- NVIDIA Data Loading Library (DALI)
- TensorRT
- PaddlePaddle with TensorRT (Paddle-TRT)
此容器中的软件堆栈已经过兼容性验证,不需要最终用户进行任何额外安装或编译。该容器可以帮助您从头到尾加速深度学习工作流程。
ETL
NVIDIA 数据加载库 (DALI)旨在通过将数据卸载到 GPU 来加速深度学习应用程序的数据加载和预处理管道。DALI 主要专注于为图像、视频和音频数据构建数据预处理管道。这些管道通常很复杂并且包括多个阶段,导致在 CPU 上运行时出现瓶颈。使用此容器开始使用 DALI 加速数据加载。
训练
NVIDIA CUDA 深度神经网络库 (cuDNN)是一个 GPU 加速的深度神经网络基元库。cuDNN 为标准例程提供高度调整的实现,例如前向和反向卷积、池化、归一化和激活层。此容器中的 PaddlePaddle 版本预编译了 cuDNN 支持,不需要任何额外配置。
NVIDIA 集体通信库 (NCCL)为 NVIDIA GPU 和网络实现多 GPU 和多节点通信原语,其中考虑了系统和网络拓扑。NCCL 与 PaddlePaddle 集成以加速多 GPU 和多节点系统的训练。特别是,NCCL 为 Mirrored 和 MultiWorkerMirrored 分布式训练策略提供了默认的 all-reduce 算法。
推理
TensorRT是一个用于高性能深度学习推理的 SDK。它包括一个深度学习推理优化器和运行时,可为深度学习推理应用程序提供低延迟和高吞吐量。PaddlePaddle 与 TensorRT (Paddle-TRT) 的集成优化并执行兼容的子图,允许 PaddlePaddle 执行剩余的图。虽然您仍然可以使用 PaddlePaddle 广泛而灵活的功能集,但 TensorRT 将解析模型并尽可能对图形的部分应用优化。
推荐读物
有关最新的发行说明,请参阅PaddlePaddle 发行说明文档网站。
有关基于容器映像的此框架附带的受支持软件和特定版本的完整列表,请参阅框架支持矩阵。
有关 PaddlePaddle 的更多信息,包括教程、文档和示例,请参阅:
基于NVIDIA NGC容器安装使用PaddlePaddle的更多相关文章
- 利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理
利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理 Optimizing and Accelerating AI Inference with the TensorRT Contai ...
- LINUX下基于NVIDIA HPC SDK 的 VASP6.3.x编译安装报错整理
关于gcc 用旧版本安装NVIDIA HPC SDK再编译会报错: "/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/move.h" ...
- [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程
基于NVidia开源的nvidia/cuda image,构建适用于DeepLearning的基础image. 思路就是先把常用的东西都塞进去,再装某个框架就省事儿了. 为了体验重装系统的乐趣,所以采 ...
- [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程 V0.2
之前的[笔记] 基于nvidia/cuda的深度学习基础镜像构建流程已经Out了,以这篇为准. 基于NVidia官方的nvidia/cuda image,构建适用于Deep Learning的基础im ...
- Amazon SageMaker和NVIDIA NGC加速AI和ML工作流
Amazon SageMaker和NVIDIA NGC加速AI和ML工作流 从自动驾驶汽车到药物发现,人工智能正成为主流,并迅速渗透到每个行业.但是,开发和部署AI应用程序是一项具有挑战性的工作.该过 ...
- 基于NVIDIA GPUs的深度学习训练新优化
基于NVIDIA GPUs的深度学习训练新优化 New Optimizations To Accelerate Deep Learning Training on NVIDIA GPUs 不同行业采用 ...
- IBM基于Kubernetes的容器云全解析
基于Kubernetes的容器云 容器云最主要的功能是以应用为中心,帮助用户把所有的应用以容器的形式在分布式里面跑起来,最后把应用以服务的形式呈现给用户.容器云里有两个关键点,一是容器编排,二是资源调 ...
- Docker容器安装配置SQLServer服务(Linux)
一:前言 随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要 ...
- ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...
- ubuntu16.04 NVIDIA显卡驱动安装
安装环境:Ubuntu16.04 1.打开终端,先删除旧的驱动: sudo apt-get purge nvidia* 2禁用自带的 nouveau nvidia驱动 (important!) 创建一 ...
随机推荐
- 麻将计分器微信小程序的开发
如何开发微信小程序 前言 因为最近沉迷和朋友们一起下班去打麻将,他们推荐了一个计分的小程序,就不需要每局都转账或者用扑克牌记录了,但是这个小程序不仅打开有广告,各个页面都植入了广告,用起来十分不适. ...
- .NET 隐藏/自定义windows系统光标
本文介绍如何操作windows系统光标.正常我们设置/隐藏光标,只能改变当前窗体或者控件范围,无法全局操作windows光标.接到一个需求,想隐藏windows全局的鼠标光标显示,下面讲下如何操作 先 ...
- python调用imgkit将html转图片pdf问题实例wkhtmltox
wkhtmltox的下载地址:https://wkhtmltopdf.org/downloads.html 或者:https://github.com/wkhtmltopdf/wkhtmltopdf ...
- AI赋能-《用ChatGPT做软件测试》新书上市
图书链接京东: https://item.jd.com/10121763192532.html当当: http://product.dangdang.com/29797547.html内容简介本书以目 ...
- Vue2.x 常用功能和方法
Vue 生命周期 beforeCreate (组件实例刚被创建,组件属性计算之前,如 data 属性等) created (组件实例创建完成, 属性已绑定,但 DOM 还未生成, $el 属性不存在) ...
- 关于C++当中全局变量的释放问题
一.由来 主要是在修改公司的一个MFC项目的时候遇到的问题,我在MFC页面的析构函数当中对一个全局图像变量进行了释放,具体如下: ai_engine_OCR::~ai_engine_OCR() { / ...
- Apache APISIX 和 Kong 的选型对比
从 API 网关核心功能点来看,两者均已覆盖: 功能 Apache APISIX Kong 动态上游 支持 支持 动态路由 支持 支持 健康检查和熔断器 支持 支持 动态SSL证书 支持 支持 七层和 ...
- pycharm之debugger使用
1.未打断点运程序,输出全部结果 2.打断点后,点击debug,代码执行到断点前停止(断点所在行不执行) 3.step over,是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子 ...
- .NET静态代码编织——肉夹馍(Rougamo)5.0
肉夹馍(https://github.com/inversionhourglass/Rougamo),一款编译时AOP组件.相比动态代理AOP需要在应用启动时进行初始化,编译时完成代码编织的肉夹馍减少 ...
- LeetCode题集-5 - 最长回文子串之马拉车(二)
书接上回,我们今天继续来聊聊最长回文子串的马拉车解法. 题目:给你一个字符串 s,找到 s 中最长的回文子串. 01.中心扩展法优化-合并奇偶处理 俗话说没有最好只有更好,看着O(n^2)的时间复杂度 ...