一,nvidia K80驱动安装
1, 查看服务器上的Nvidia(英伟达)显卡信息,命令lspci |grep NVIDIA
05:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
06:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
84:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
85:00.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
2,按下来,进行显卡驱动程序的安装,这一步由主机组同事操作,当前查看到版本为:Driver Version: 396.37,运行nvidia-smi可获得此信息。
NVIDIA-SMI 396.37 Driver Version: 396.37
下次安装时,建议安装比较新的驱动版本(410及以上),因为这个驱动版本,会影响接后面的很多细节。
驱动网址:https://www.nvidia.com/Download/index.aspx?lang=en-us。
二,NVIDIA CUDA Toolkit 安装
1,根据前一节的驱动,先把合适的CUDA Toolkit版本进行下载安装。
下载网址:https://developer.nvidia.com/cuda-toolkit-archive
驱动程序和CUDA的对应关系如下图:
下次安装时,建议安装10.0及以上版本,因为主流学习框架对这些版本有更好的支持和性能。
2,使用cuda中的deviceQuery可以获得其安装信息:
三,安装cuDNN
1, cuDNN是GPU加速计算深层神经网络的库,网址:
https://developer.nvidia.com/rdp/cudnn-archive
2, 选择与cuda对应的版本,下载解压到cuda对应目录即可。
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
***如果只是在宿主机上使用NVIDIA的GPU,那么,经过上面的步骤之后,就可以安装一些学习框架进行操作了。但如果想更灵活干净的让应用在容器内运行,则还需要进行接下来的操作准备。***
四,nvidia-docker2安装
1,Nvidia关于docker项目的支持,github网址:https://github.com/NVIDIA/nvidia-docker。它使用一个nvidia-docker2应用来延伸docker的内置功能。架构如下:
2,nvidia-docker2要求的docker安装版本比较新,安装的版本为ce-18.09.6-3。Nvidia-docker2安装的版本为2.0.3-3。(这几个rpm包我都收下载好,可随时共享)
安装命令(需要解决rpm包依赖,未列明):
Sudo yum install docker-ce-18.09.6-3.el7.x86_64.rpm
Sudo yum install nvidia-docker2-2.0.3-3.docker18.09.6.ce.noarch.rpm
3,在安装完成之后,有两个配置文件需要更改或新建:
a,/etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph=/docker_data --storage-driver=overlay --insecure-registry harbor.xxxx.com.cn
graph参数指定docker镜像的存放目录,需要一个较大的硬盘空间。
b,/etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
此文件为nvidia-docker2应用所需,用于替换docker的默认runc。
用两个文件来自定义docker配置,即可以替换runc,又可以提定内部仓库,合理~
4,当这些更改应用之后,再启动docker服务,使用docker info会看到相应的更改已生效。
...
Server Version: 18.09.6
Storage Driver: overlay
Backing Filesystem: xfs
Supports d_type: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Runtimes: nvidia runc
Default Runtime: nvidia
Docker Root Dir: /data05
Insecure Registries:
harbor.xxxx.com.cn
127.0.0.0/8
...
五,Docker镜像测试:
1,此次测试的镜像如下:
---anibali/pytorch:cuda-9.2
---tensorflow/tensorflow:1.12.0-gpu-py3
2,在服务器新装之后,如果有特别个性化的需求,可以考虑以anaconda镜像为基础进行自定义制作。
3,在以上两个镜像中,GPU加速的效果,都可以达到CPU的10倍左右。
六,使用K8S管理docker容器的部署
未完待续