一直在用传统的逆向工具,小白第一次来试试深度学习,怕驱动出问题直接在docker上搭环境。但是始终连不上gpu报错。
所以将自己的经历上传供大家参考和自己记录。
首先介绍docker对gpu的支持
- 最初的docker是不支持gpu的。为了让docker支持nvidia显卡,英伟达公司开发了nvidia-docker。该软件是对docker的包装,使得容器能够看到并使用宿主机的nvidia显卡。
- 从docker 19版本之后,nvidia-docker成为了过去式。不需要单独去下nvidia-docker这个独立的docker应用程序,也就是说gpu docker所需要的Runtime被集成进docker中,使用的时候用–gpus参数来控制。
如果只是加上"–gpus all"只能作为utility存在
即docker run命令为:
docker run -it --name my_docker --gpus all ubuntu:latest
这只能让gpus在容器中是可见的状态,但是真正的计算资源并不能被使用(如上图),这事因为Pytorch找不到NVIDIA driver。只有当添加了NVIDIA_DRIVER_CAPABILITIES=compute,utility之后才能使用gpus的计算资源
完整命令为:
docker run -it --gpus all --name my_docker -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu:latset
上面的容器名和镜像名请自行修改!!!
最终亲测可用