目录
一. 先决条件
在开始之前,请确保您已经为您的 Linux 发行版安装了 NVIDIA 驱动程序。
同时要满足:
1.内核版本 > 3.10 的 GNU/Linux x86_64。
2.Docker >= 19.03(推荐,但某些发行版可能包含旧版本的 Docker。支持的最低版本为 1.12)。
3.架构 >= Kepler(或计算能力 3.0)的 NVIDIA GPU(即9系显卡及以上)。
4.NVIDIA Linux 驱动程序>= 418.81.07(请注意,不支持较旧的驱动程序版本或分支。)。
二. 安装docker
2.1 安装并使能docker
curl https://get.docker.com | sh \
&& sudo systemctl --now enable docker
2.2 设置NVIDIA-docker库和GPG密钥
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
不报错即为成功:
2.3 安装NVIDIA其他包和依赖项
更新包列表后安装nvidia-docker2
包(和依赖项):
sudo apt-get update
sudo apt-get install -y nvidia-docker2
设置默认运行时后重启 Docker 守护进程完成安装:
sudo systemctl restart docker
通过运行基本 CUDA 容器来测试工作设置:
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
三. 启动docker的pytorch镜像
sudo docker run --gpus all -it --rm -p 8888:8888 -v ~:/workspace \
--ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
nvcr.io/nvidia/pytorch:22.07-py3
大概需要下载6个G的包,下载完后会自动进入docker的环境中:
四. 总结
- docker也是相当于全家桶式的安装,一次大概6个GB的包比较占空间,定制化程度较弱。
- docker修改pytorch环境和版本需要重新下载镜像,非常不方便。
- docker本身对于从零开始的环境配置非常快捷,不需要自行安装NVIDIA驱动和CUDA。
- docker在长时运行后可能驱动会出问题,且需要备份docker。
- docker会带来一些指令级的额外开销。
- docker适合特别关注底层的性能和开发的群体。
- 如果是关心算法做开发,最好使用NVIDIA驱动+conda命令安装pytorch+CUDA的方式。这种方法的坏处也是磁盘占用率较高,且仅仅安装了CUDA运行环境,但cuda编译器并没有安装,有些包的kernel需要实时编译且依赖nvcc的则不适用,因此实际使用过程中兼容性可能出现问题。