本文介绍如何在GPU云主机上部署NGC环境。
NVIDIA NGC 是用于深度学习、机器学习和HPC的GPU优化软件的中心,可提供容器、模型、模型脚本和行业解决方案,以便数据科学家、开发人员和研究人员可以专注于更快地构建解决方案和收集见解。
前提条件
- 用户需要注册NGC的账号:NGC账号注册。
- GPU云主机配备弹性公网IP。
安装步骤
- 创建一台GPU云主机,操作方法请参见创建未配备GPU驱动的GPU云主机。
- 安装GPU云主机驱动, 建议安装最新版本的操作系统驱动,操作方法请参见NVIDIA驱动安装指引。
- 安装Docker和针对NVIDIA GPU的Docker Utility Engine,即nvidia-docker。
a. 在安装Docker新版本之前,请卸载所有的旧版本以及关联的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
b. 设置Docker 存储库。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
c. 安装Docker 引擎。
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
d. 启动docker。
sudo systemctl start docker
e. 安装nvidia-docker。
- 设置存储库和 GPG 密钥。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
- 更新包列表后安装nvidia-container-toolkit包(和依赖项)。
sudo yum clean expire-cache
sudo yum install -y nvidia-container-toolkit
- 配置Docker 守护程序以识别 NVIDIA 容器运行时。
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
- 通过运行基本 CUDA 容器来测试工作设置。
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
使用NVIDIA NGC
- 生成NGC的API key 。
a. 在NGC账号注册网站成功注册完NGC账号之后,需要生成账户的API key。
登录NGC页面,单击“账户名”,选择“Setup”,会进入Setup页面,然后单击“Get API Key”,进入生成API Key的页面。
b. 在API Key的页面,单击“Generate API Key”,进入确认对话框。
c. 在确认对话框,单击“Confirm”,页面会变为类似于下图所示的页面。
d. 在Password处会显示一连串密码,用户返回GPU实例的shell界面按照图中的操作即可。
$ docker login nvcr.io
Username: $oauthtoken
Password: 【输入生成的秘钥】
- 使用NGC中的镜像(以PyTorch为例)。
a. 进入NGC的CATALOG的目录部分,选择CONTAINERS分支,在Query查询中输入PyTorch,并单击“PyTorch”。
b. 单击“Get Container”,关于容器的拉取镜像的方法则会展示出来。
c. 按照上图中红色方框中的命令,可以获得最新版本的容器镜像,继续在GPU实例的命令行中输入以下命令。
$ docker pull nvcr.io/nvidia/pytorch:23.07-py3
这样,我们就可以用docker容器的方式去使用框架或软件产品了。
标签:NGC,sudo,实例,yum,nvidia,GPU,docker From: https://blog.csdn.net/2404_89421557/article/details/144191597