GPU驱动安装
使用GPU之前,需要先确定好CUDA已经安装配置完成。
查看是否支持GPU
lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation Device 1b06 (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10ef (rev a1)
显示有一个显卡,一个声卡
安装 CUDA Toolkit
在 CUDA Toolkit Download 页面下载合适的版本下载。
从图中所框按钮处右键复制出链接地址,下载到宿主机里。
rpm -ivh http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-9.1.85-1.x86_64.rpm
yum clean all
yum install -y cuda
# 安装完成后记得重启系统
reboot
新增环境配置文件:
vi /etc/profile.d/cuda.sh
粘贴如下内容:
# cuda
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64:/usr/local/cuda-9.1/extras/CUPTI/lib64:$LD_LIBRARY_PATH
请根据实际情况确定路径后修改
即时生效
source /etc/profile.d/cuda.sh
NVIDIA cuDNN Install
cuDNN 是专门针对深度框架设计的一套 GPU 计算加速方案,支持的框架包括 Caffe、TensorFlow 等,https://developer.nvidia.com/cuDNN(官网现在下载需要注册账户才能下载)
tar -xf cudnn-9.1-linux-x64-v7.1.tgz
cd cuda
cp include/* /usr/local/cuda/include/
cp lib64/* /usr/local/cuda/lib64/
ldconfig
通过 nvidia-smi
查看 GPU 状态
nvidia-smi
输出:
Tue Apr 24 18:58:50 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.25 Driver Version: 390.25 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 Off | N/A |
| 0% 53C P5 27W / 280W | 0MiB / 11177MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
在 Docker
中使用 GPU
nvidia 官方提供了 nvidia-docker 可以直接驱动 GPU 设备,具体文档可以参考 nvidia-docker。
更简单的操作:
export DEVICES=$(\ls /dev/nvidia* | xargs -I{} echo '--device {}:{}')
docker run -it --rm $DEVICES -v /usr/lib64/nvidia/:/usr/local/nvidia/lib64 tensorflow/tensorflow:latest-gpu bash
通过
DEVICES
挂载驱动设备,在通过文件映射,将类库文件挂载到容器镜像内。