Docker中使用GPU

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

Docker中使用GPU_第1张图片

在 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(官网现在下载需要注册账户才能下载)

Docker中使用GPU_第2张图片

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 挂载驱动设备,在通过文件映射,将类库文件挂载到容器镜像内。

链接

Docker 中玩转 GPU

转载于:https://my.oschina.net/dingdayu/blog/1800572

你可能感兴趣的:(Docker中使用GPU)