基于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 MatrixNVIDIA 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.xx is 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 加速的软件:

此容器中的软件堆栈已经过兼容性验证,不需要最终用户进行任何额外安装或编译。该容器可以帮助您从头到尾加速深度学习工作流程。

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的更多相关文章

  1. 利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理

    利用NVIDIA NGC的TensorRT容器优化和加速人工智能推理 Optimizing and Accelerating AI Inference with the TensorRT Contai ...

  2. LINUX下基于NVIDIA HPC SDK 的 VASP6.3.x编译安装报错整理

    关于gcc 用旧版本安装NVIDIA HPC SDK再编译会报错: "/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/move.h" ...

  3. [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程

    基于NVidia开源的nvidia/cuda image,构建适用于DeepLearning的基础image. 思路就是先把常用的东西都塞进去,再装某个框架就省事儿了. 为了体验重装系统的乐趣,所以采 ...

  4. [笔记] 基于nvidia/cuda的深度学习基础镜像构建流程 V0.2

    之前的[笔记] 基于nvidia/cuda的深度学习基础镜像构建流程已经Out了,以这篇为准. 基于NVidia官方的nvidia/cuda image,构建适用于Deep Learning的基础im ...

  5. Amazon SageMaker和NVIDIA NGC加速AI和ML工作流

    Amazon SageMaker和NVIDIA NGC加速AI和ML工作流 从自动驾驶汽车到药物发现,人工智能正成为主流,并迅速渗透到每个行业.但是,开发和部署AI应用程序是一项具有挑战性的工作.该过 ...

  6. 基于NVIDIA GPUs的深度学习训练新优化

    基于NVIDIA GPUs的深度学习训练新优化 New Optimizations To Accelerate Deep Learning Training on NVIDIA GPUs 不同行业采用 ...

  7. IBM基于Kubernetes的容器云全解析

    基于Kubernetes的容器云 容器云最主要的功能是以应用为中心,帮助用户把所有的应用以容器的形式在分布式里面跑起来,最后把应用以服务的形式呈现给用户.容器云里有两个关键点,一是容器编排,二是资源调 ...

  8. Docker容器安装配置SQLServer服务(Linux)

    一:前言 随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要 ...

  9. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  10. ubuntu16.04 NVIDIA显卡驱动安装

    安装环境:Ubuntu16.04 1.打开终端,先删除旧的驱动: sudo apt-get purge nvidia* 2禁用自带的 nouveau nvidia驱动 (important!) 创建一 ...

随机推荐

  1. 数据运算中关于字符串""的拼接问题

    例子中准备了3种类型数据,分别针对是否在运算存在空字符串参与运算进行了演示,结果如下: 1 int x = 10; 2 double y = 20.2; 3 long z = 10L; 4 Syste ...

  2. vue3 使用swiper轮播组件

    本地环境信息 node版本: nodejs : v18.20.4 npm : 10.7.0 vue版本 "dependencies": { "vue": &qu ...

  3. 电脑配置不够玩不了原神、剑三和魔兽世界?ToDesk云电脑来帮你!

    原神.剑网三.魔兽世界这种吃配置的游戏,对电脑硬件和软件的要求可都不低,所以当游戏玩家遇到配置一般的电脑,就只能望游戏而兴叹吗? 当然不用!云电脑成为你的游戏电脑平替之选. 用云电脑来玩游戏,不仅对你 ...

  4. Oracle HR样例数据库建立

    在视频的学习过程中,老师用到了HR样例数据库,但是我发现我的样例数据库中没有HR样例数据库,可能是在安装的时候漏掉了哪个环节,所以只能补救一下 如何判断自己是否有HR样例数据库呢?操作代码如下所示 第 ...

  5. layui laydate日期时间范围,时间默认设定为23:59:59

    在Layui中,如果你想设置日期时间选择器(datetime)的默认结束时间为当天的23:59:59,你可以使用如下代码(红色部分): laydate.render({ elem: '#test10' ...

  6. 计算机网络基础/进制转换/企业级子网IP划分

    数制的含义 数制:计数的方法,指用一组固定的符号和统一的规则来表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种进位计数制 ...

  7. CUDA 编程学习 (5)——内存访问性能

    1. DRAM 带宽 1.1 DRAM 核心阵列结构 每个 DRAM 核心阵列约有 \(16M\) bits 每个 bits 存储在由一个晶体管组成的微小电容器中 超小型(8x2-bit)DRAM 内 ...

  8. Prometheus之系统安装,启动

    Prometheus简介Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包. 自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人 ...

  9. ZCMU-1101

    这个题不怎么难,就是当时没有理解到字典序的意思:我一直以为是自己元素间的比较,后再同学帮助下明白这里是与其他比,这样就很简单了.就是要求当前那个最小就可以了. 对这道题我有点吐槽明明自己都说了最后一组 ...

  10. WinDbg: Failed to find runtime module (coreclr.dll or clr.dll or libcoreclr.so)

    当我们通过 WinDbg 启动一个 .NET 的程序时,WinDbg 将会在运行可执行之前执行一个中断,此时还没有加载 .NET 的运行时. 但是,SOS 扩展需要 clr.dll 或者 corecl ...