- 硬件安装
所需设备:GPU卡*1(测试使用Tesla V100,PCIe接口) PCIe延长线*1 8Pin显卡供电转接线*1
如果服务器有数据要备份
安装流程:
1.1关闭服务器
在linux系统执行shutdown命令关机
等服务器硬盘灯全部熄灭且电源灯变为黄色时,拔掉电源线和网线。
1.2安装GPU
将服务器从机架内抽出,打开上板。
把GPU插入PCIe延长线的母口,并将PCIe延长线公口插入主板PCIe插槽(注意,服务一般情况下左右两边PCIe插槽分别是与CPU0和CPU1连接的,在使用中注意NUMA构架。)
找到主板上写有GPU_PWR字样的8Pin供电口,将显卡供电转接线较小一端插入此供电口,将另一端插入显卡8Pin供电(部分服务器设计不同,使用电源端8pin供电接口亦可)。
调整好GPU位置,盖上上板,将服务器恢复原位,插上电源和网线。
1.3开机调试
开机后进入bios,可以在PCIe设备中看到GPU,说明安装成功。
- 驱动安装
2.1驱动下载
在nvidia官网搜索GPU硬件对应版本https://www.nvidia.cn/Download/index.aspx?lang=cn
下载驱动上传或者复制下载链接进行wget下载。
2.2 kernel内核相关的包
安装内核包时需要先检查一下当前内核版本是否与所要安装的kernel-devel/kernel-doc/kernel-headers的版本一致,务必保持版本一致,否则后续的编译过程会出问题。
查看当前内核版本
uname -a
查看yum源中所有内核相关包的版本
yum list | grep kernel-
如果有相同版本,直接使用yum install kernel-devel kernel-doc kernel-headers手动加上版本号
安装即可,没有的话需要下载后安装
其他版本可以使用http://rpm.pbone.net/搜索下载
2.3安装gcc编译环境
执行yum installs gcc\* glibc\* glibc-\*
2.4禁用系统默认安装的 nouveau 驱动
修改/etc/modprobe.d/blacklist.conf 文件:
# 修改配置
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf
# 备份原来的镜像文件
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# 重建新镜像文件
dracut /boot/initramfs-$(uname -r).img $(uname -r)
# 重启
reboot
# 查看nouveau是否启动,如果结果为空即为禁用成功
lsmod | grep nouveau
2.5 安装驱动
不同型号GPU驱动版本不同(以如下版本为例)
授权
chmod +x NVIDIA-Linux-x86_64-450.51.06.run
执行安装驱动
./NVIDIA-Linux-x86_64-450.51.06.run
测试安装结果
执行nvidia-smi输出GPU信息
- docker安装
由于nvidia-docker2版本推荐为docker-ce 19.03以上版本,旧版本可能不兼容,所以选择安装docker-ce 19.03
之前安装过 docker,先删掉旧版本
yum remove docker docker-common docker-selinux docker-engine
安装一些依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
根据你的发行版下载repo文件:
wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo
把软件仓库地址替换为 清华源:
sed -i 's+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+' /etc/yum.repos.d/docker-ce.repo
最后安装:
yum makecache fast
yum install docker-ce
- 安装nvidia-docker
下载当前操作系统的/nvidia-docker.repo文件
curl -s -L https://nvidia.github.io/nvidia-docker/centos7/x86_64/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
yum makecache fast
搜索可以安装的nvidia-docker
yum list|grep nvidia-docker
安装nvidia-docker2
yum install nvidia-docker2.noarch
注意nvidia-docker 1.x版本和nvidia-docker 2.x版本功能差距比较大,1.x版本没有自动集成nvidia runtime,需要手动配置,推荐使用2.x版本。
重启docker
systemctl restart docker
至此,nvidia-docker已经安装完成
验证测试nvidia-docker功能
nvidia-docker 与docker run –runtime=nvidia命令等价使用
NVIDIA_VISIBLE_DEVICES配置的是容器使用的GPU,0代表GPU编号,all代表全部使用。
nvidia-docker run -it -e NVIDIA_VISIBLE_DEVICES=0 nginx bash
在容器中执行nvidia-smi输出GPU信息
由于容器中没有安装cuda,所以导致cuda版本不显示,使用官方提供的cuda镜像可以显示cuda相关信息
docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda bash