Docker 在Tesla K80 和 RTX 2080配置CUDA,Pytorch过程,cuda runtime error (11)解决方案

记录Docker 在Tesla K80 和 RTX 2080配置CUDA,Pytorch过程,RuntimeError: cuda runtime error 11 : invalid argument at /pytorch/aten/src/THC/THCGeneral.cpp:663解决方案

  • Tesla K80
  • RTX 2080

第一次使用docker,需要跑一个深度学习程序,要求pytorch==1.0.1,因此开始在两台服务器不同显卡上配置docker

Tesla K80

先pull镜像,镜像在https://github.com/anibali/docker-pytorch有说明,直接执行以下命令

docker pull anibali/pytorch:cuda-9.0

然后使用该镜像运行容器,先执行以下命令查看已有镜像

docker images

发现镜像已经被拉入本地:
已被拉入本地的镜像image接下来运行一个container来使用这个镜像

nvidia-docker run -it --name myname -v /home/username:/home/username anibali/pytorch:cuda-9.0 bash

这里使用nivdia-docker来运行,这样才能支持GPU运行。 -it 表示与容器进行交互界面, --name 设置容器名字, -v 建立映射路径,否则无法进入本地路径, anibali/pytorch:cuda-9.0 是镜像名称,bash表示用bash命令进行交互

进入后,由于这个镜像配置的是pytorch 1.0.0,而我需要的是pytorch 1.0.1,因此我选择conda为自己配置一个新环境。注意先将系统update一下,预先配置一下GCC等(由于我的程序需要调用一些库,需要GCC)

sudo apt-get update
sudo apt-get install gcc
conda create --name myname python=3.6.6
source activate myname
pip install numpy torch==1.0.1

至此完成配置,可以选择python交互用以下命令查看pytorch是否可以使用CUDA,如果显示True,则可以使用了

import torch
torch.cuda.is_available()

RTX 2080

一开始像之前一样配置,但是发现运行程序后报这个错误:

RuntimeError: cuda runtime error (11) : invalid argument at /pytorch/aten/src/THC/THCGeneral.cpp:663

折腾了一顿换了各种版本都不行,最后在这里https://discuss.pytorch.org/t/a-error-when-using-gpu/32761/19找到了答案,发现很多人在GTX 2080上面都有这个问题,最后我的解决方法是使用CUDA-10.0,在安装pytorch时不要像上一个那样安装,执行如下命令安装

pip install -U https://download.pytorch.org/whl/cu100/torch-1.0.1-cp36-cp36m-linux_x86_64.whl 

然后在程序中添加torch.backends.cudnn.benchmark = True这条语句(可选)。
注意由于配置的是CUDA-10.0,在pull镜像时更换为如下语句:

docker pull anibali/pytorch:cuda-10.0

程序终于可以正常运行

你可能感兴趣的:(Docker 在Tesla K80 和 RTX 2080配置CUDA,Pytorch过程,cuda runtime error (11)解决方案)