注意:
本机想要启用gpu加速计算,需要由一张多余的nVidia显卡。需要提前禁用nouveau:lsmod | grep nouveau没有输出即禁用了
需要安装1、显卡驱动、2、cuda库(安装cuda会自动安装显卡驱动)3、cudnn(深度神经网络的GPU加速库,需要神经网络则安否则可以不安)
安装完成后,可以在本机运行nvidia-smi查看GPU设备的状态。
Docker使用gpu:
nvidia-docker2.0对nvidia-docker1.0进行了很大的优化,不用再映射宿主机GPU驱动了,直接把宿主机的GPU运行时映射到容器即可,容器内无需安装gpu驱动和cuda了。
为了使docker image能很便利的使用Nvidia GPU,从而产生了nvidia-docker,由它来制作nvidia driver的image。nvidia-docker是一个可以使用GPU的docker,nvidia-docker是在docker上做了一层封装,通过nvidia-docker-plugin,然后调用到docker。
需要安装:1、docker 2、显卡驱动(nvidia driver) 和cuda(安装cuda时会自动安装显卡驱动) 。 3、nvidia-docker(nvidia-docker2是对nvidia-docker的升级)
nvidia-docker run –rm nvidia/cuda:10.0-devel
docker开的容器中要想支持gpu,也必须安装cuda(安cuda时会自动安驱动)
1、可以直接使用tensorflow、pytorch等官方提供的gpu镜像。
2、如果想自己定制,可以基于nvidia/cuda镜像,进行配置(不要从头自己配置)
增加了对–gpus选项的支持,我们在docker里面想读取nvidia显卡再也不需要额外的安装nvidia-docker2了。需要提前禁用nouveau:lsmod | grep nouveau没有输出即禁用了
需要安装:1.安装nvidia驱动、cuda 2、安装nvidia-container-runtime 3、安装docker-19.03
1、安装驱动和cuda:
Installing the NVIDIA display driver...
Installing the CUDA Toolkit in /usr/local/cuda-9.1 ...
ps:也可以先手动安装驱动,然后再通过.run文件安装cuda(可以选择不安装nvidia驱动)
安装cuda时报错:错误:软件包xxx需要:opencl-filesystem、ocl-icd
解决:安装epel数据源即可yum install epel-release –y。
2、安装nvidia-container-runtime:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-container-toolkit nvidia-container-runtime
3、运行容器时,添加—gpu参数启用gpu支持。
# 使用所有GPU
$ docker run –gpus all nvidia/cuda:9.0-base nvidia-smi
# 使用两个GPU
$ docker run –gpus 2 nvidia/cuda:9.0-base nvidia-smi
# 指定GPU运行
$ docker run –gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
$ docker run –gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi
docker exec -it centos #进入容器
nvidia-smi #容器内查看gpu使用情况
测试:docker pull ufoym/deepo:keras-py36-cu80 #拉取支持gpu的keras & tensorflow环境
docker run –gpus all –rm -it ufoym/deepo:keras-py36-cu80 #启动后,进入容器。
进入python环境 (docker run –gpus all –rm -it ufoym/deepo)
python
输入代码
import tensorflow as tf a = tf.constant('hello world') sess = tf.Session() sess.run(a) sess.close()
报错:docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].
解决:确保安装了nvidia-container-runtime,然后sudo systemctl restart docker即可。
原文链接:https://blog.csdn.net/qq_42152032/article/details/131342043?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836840916800226555627%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836840916800226555627&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-16-131342043-null-null.nonecase&utm_term=docker%E3%80%81%E5%A5%BD%E7%94%A8