1. 硬件安装

所需设备: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,说明安装成功。

  1. 驱动安装

2.1驱动下载

在nvidia官网搜索GPU硬件对应版本https://www.nvidia.cn/Download/index.aspx?lang=cn

emby docker n卡独显 docker 显卡直通_docker

 

 

下载驱动上传或者复制下载链接进行wget下载。

emby docker n卡独显 docker 显卡直通_机器学习_02

2.2 kernel内核相关的包

安装内核包时需要先检查一下当前内核版本是否与所要安装的kernel-devel/kernel-doc/kernel-headers的版本一致,务必保持版本一致,否则后续的编译过程会出问题。

查看当前内核版本

uname -a

emby docker n卡独显 docker 显卡直通_容器_03

 

查看yum源中所有内核相关包的版本

yum list | grep kernel-

 

emby docker n卡独显 docker 显卡直通_机器学习_04

如果有相同版本,直接使用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信息

emby docker n卡独显 docker 显卡直通_emby docker n卡独显_05

 

  1. 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

  1. 安装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信息

emby docker n卡独显 docker 显卡直通_服务器_06

 

由于容器中没有安装cuda,所以导致cuda版本不显示,使用官方提供的cuda镜像可以显示cuda相关信息

docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=all nvidia/cuda bash

 

emby docker n卡独显 docker 显卡直通_emby docker n卡独显_07