安装NVIDIA驱动
在NVIDIA下载对应的驱动安装文件
-
安装依赖环境
yum install -y pciutils gcc gcc-c++ kernel-devel yum update -y kernel
-
屏蔽系统自带的nouveau
# 查看命令: lsmod | grep nouveau # 修改dist-blacklist.conf文件: vi /lib/modprobe.d/dist-blacklist.conf # 将nvidiafb注释掉: #blacklist nvidiafb # 然后添加以下语句: blacklist nouveau options nouveau modeset=0 dracut --force
-
重建initramfs image步骤
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak dracut /boot/initramfs-$(uname -r).img $(uname -r)
-
修改运行级别为文本模式
systemctl set-default multi-user.target
-
重新启动
reboot lsmod | grep nouveau # 检查上面的命令有没有结果,如果还有结果 dracut --force
-
运行安装文件
chmod +x NVIDIA-Linux-x86_64-410.129-diagnostic.run ./NVIDIA-Linux-x86_64-410.129-diagnostic.run nvidia-smi
安装NVIDIA Docker
-
安装Docker
yum install -y wget cd /etc/yum.repos.d/ wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install -y docker-ce systemctl start docker systemctl enable docker vi /etc/docker/daemon.json { "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] } systemctl restart docker docker verison docker info
-
安装Nvidia-Docker
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo yum clean expire-cache yum install -y nvidia-docker2 systemctl restart docker # 启动启用GPU的CUDA容器;使用--gpus docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda:10.0-base nvidia-smi # 在两个GPU上启动启用GPU的容器 docker run --rm --gpus 2 nvidia/cuda:10.0-base nvidia-smi # 在特定GPU上启动启用GPU的容器 docker run --rm --gpus '"device=0"' nvidia/cuda:10.0-base nvidia-smi docker run --rm --gpus '"device=0,1"' nvidia/cuda:10.0-base nvidia-smi docker run --rm --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0,1 nvidia/cuda:10.0-base nvidia-smi
-
Dockerfiles
可以通过环境变量在图像中设置功能和GPU枚举。如果环境变量是在Dockerfile中设置的,则无需在命令行上进行设置。
docker run
例如,如果要创建自己的自定义CUDA容器,则应使用以下内容:
ENV NVIDIA_VISIBLE_DEVICES all ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
这些环境变量已在NVIDIA提供的CUDA映像中设置。