更新时间:2025-08-06 GMT+08:00
部署NGC容器环境以构建深度学习开发环境
应用场景
华为云支持使用Docker容器来部署深度学习框架,并且可以通过NVIDIA Docker来启动支持GPU加速的容器,您可以从NVIDIA NGC下载适合的容器镜像,并在华为云的GPU实例上运行。
本文以搭建TensorFlow深度学习框架为例,为您介绍如何在GPU实例上,使用容器化解决方案部署NGC容器环境以实现深度学习开发环境的预安装。
背景信息
NGC容器镜像(NVIDIA GPU Cloud 容器镜像)是NVIDIA提供的一系列优化过的Docker容器镜像。
- 预配置环境:这些容器镜像内已集成了CUDA、cuDNN、深度学习框架及其他相关依赖,使用时无需进行繁琐的环境配置,直接拉取镜像运行即可。
- GPU加速:这些镜像经过优化,能够充分利用NVIDIA GPU进行计算,尤其是在深度学习、大规模数据处理和高性能计算任务中,能够显著提升计算效率。
- 优化设计:容器镜像针对特定的任务(如深度学习框架、AI 任务等)进行优化,保证了性能和兼容性。
- 多种深度学习框架:NVIDIA提供了多个常用的深度学习框架的容器镜像,包括TensorFlow、PyTorch、MXNet、Caffe等,可以根据需求选择使用。
方案优势
- 无需手动配置环境:容器镜像已经集成了CUDA、cuDNN、深度学习框架(如TensorFlow、PyTorch等),以及其他常见的工具库。
- 轻松迁移:你可以将容器镜像在不同的云环境中运行,确保开发和生产环境的一致性。
- 版本控制:NGC上有多个版本的容器镜像,你可以选择适合自己需求的版本(例如,不同的TensorFlow或PyTorch版本)。
部署NGC容器环境以构建深度学习开发环境
部署NGC容器环境以构建深度学习开发环境的操作步骤如下:
实施步骤
- 创建GPU实例
- 登录控制台,进入购买弹性云服务器页面。
- 选择支持GPU加速型的实例(例如 Pi2、pi3、pi5 系列,支持NVIDIA Tesla T4 、A30、L2等GPU)。
- 选择已经安装CUDA和NVIDIA驱动的镜像。
本文以Ubuntu 22.04 server 64bit with Tesla Driver 470.223.02 and CUDA 11.4镜像为例。
- 选择一种方式远程连接GPU实例。(如VNC登录、CloudShell登录等)。
- 安装Docker
NGC容器基于Docker,因此您需要安装Docker和NVIDIA Docker,以便能够使用GPU加速的容器。
本文以Ubuntu系统为例,在其他Linux操作系统或Windows、Mac上安装Docker,请参考Docker官方文档:https://docs.docker.com/get-docker/)。- 更新包索引并安装Docker。
sudo apt update sudo apt install -y docker.io
- 启动Docker服务并设置开机启动。
sudo systemctl start docker sudo systemctl enable docker
- 验证Docker安装。
docker --version
回显如下类似信息,表示Docker安装成功。
- 验证Docker状态
sudo systemctl status docker
- 更新包索引并安装Docker。
- 安装NVIDIA Docker
- 添加NVIDIA Docker存储库
# 获取并添加NVIDIA Docker GPG密钥
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
# 添加 NVIDIA Docker 存储库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- 安装NVIDIA Docker。
sudo apt update
# 安装nvidia-docker2和相关的依赖项
sudo apt install nvidia-docker2
# 重启Docker服务
sudo systemctl restart docker
- 验证NVIDIA Docker配置
dpkg -l | grep nvidia-docker2
回显如下类似信息,表示安装成功。
- 添加NVIDIA Docker存储库
- 拉取NGC容器镜像
- 使用Docker拉取你需要的容器镜像
docker pull nvcr.io/nvidia/tensorflow:xx.xx-py3
- 其中,xx.xx-py3表示TensorFlow的版本号和Python版本。例如:docker pull nvcr.io/nvidia/tensorflow:21.07-tf1-py3
- TensorFlow镜像中的CUDA版本必须与GPU实例的驱动版本相匹配,否则会导致部署TensorFlow开发环境时失败。关于TensorFlow镜像版本、CUDA版本以及GPU实例的驱动版本对应匹配关系,请参见https://docs.nvidia.com/deeplearning/frameworks/tensorflow-release-notes/index.html。
- 下载TensorFlow容器镜像可能需要较长时间,请您耐心等待。
- 查看下载的TensorFlow容器镜像信息。
docker image ls
- 使用Docker拉取你需要的容器镜像
- 运行NGC容器
使用NVIDIA GPU运行容器。以下是一个启动 TensorFlow 容器的示例命令:
docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:xx.xx-py3
例如:
docker run --gpus all -it --rm nvcr.io/nvidia/tensorflow:21.07-tf1-py3
- 测试TensorFlow
依次执行以下命令,简单测试TensorFlow。
python
import tensorflow as tf print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
回显如下类似信息,返回信息中包含GPU的数量。
父主题: GPU实例最佳实践