docker 使用pytorch在gpu上训练模型
安装docker
sudo apt-get -y install docker.io
不是
sudo apt-get install docker
虽然后者也能安装成功但是无法启动。
下载docker image
在docker hub上寻找pytorch的image,然后下载
sudo docker pull pytorch/pytorch
建立启动容器进入docker虚拟空间
sudo docker run --name=golfbears -it -v /home:/home pytorch/pytorch:latest
不一定能运行起来
我第一次就失败了,在pytorch1.7.1下主要出现了下面的错误:
RuntimeError: CUDA error: no kernel image is available for execution on the device
升级到1.9又报如下错误,更多了:
RuntimeError: CUDA error: no kernel image is available for execution on the device
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
在网上查询到如何传入
CUDA_LAUNCH_BLOCKING=1 python train.py ...
但依旧没办法跑起来,花了很多时间,这主要的原因是pytorch和cuda版本不匹配,所以第一步还是要查询cudnn的驱动版本,通过nvidia-smi来看一下CUDA Version: 11.1,然后在pytorch
网站寻找能匹配这个版本的安装包
根据配置把“run this command”里指令copy出来,在docker container里面再安装一遍,驱动匹配的问题就基本解决了,剩下的就是跑模型和调试代码了。