(仍未解决)模型搬到GPU,我的程序卡死了:pytorch,cuda,channel的故事
Posted CSU迦叶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(仍未解决)模型搬到GPU,我的程序卡死了:pytorch,cuda,channel的故事相关的知识,希望对你有一定的参考价值。
问题描述
# 包装为并行风格模型
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = '0,1,2,3'
device_ids = [0, 1, 2, 3]
device = torch.device("cuda:0")
model = torch.nn.DataParallel(model, device_ids=device_ids)
model = model.cuda()
debug执行到.cuda()那一句时,程序不动了(按下F10很久也不见左侧光标),终端出现了如下的用户警告(这时候有警告是好事)
解决过程
浅分析一下,cuda和pytoch的版本是不匹配的,于是使用
conda list -n py37 | grep pytorch
查看了一下当前虚拟环境下pytorch的版本
发现pytorch已经是最新版本了!
然后使用
conda list -n py37 | grep cudatoolkit
查看了一下当前虚拟环境下cudatoolkit的版本
再到官网,看到应该安装的版本是11.3
那就安装11.3吧~随后就会发现conda和pip和pip3都安不了这个版本了,转而安装11.6版本,输入命令(注:后面的-c conda-forge表示从conda-forge这个channel下载,官网说的)
conda install -n py37 cudatoolkit==11.6.0 -c conda-forge
这个倒是可以下,但是转而发现package plan的一行诡异内容
坏消息是我一时只好先答应看看,总比退回上一步好一些,要是运行没问题就先过去,不行就退回上一步,降pytorch的版本。
于是先卸载再安装
conda uninstall -n py37 pytorch cudatoolkit
conda install -n py37 pytorch==1.12.0 cudatoolkit=11.3 -c pytorch
卸载倒没什么问题,安装时候却出现
好的现在运行到model.cuda()这一句时错误显然更严重
尽信官网不如无官网,一通检索之后,知道了这背后的原因是由于cpu版和gpu版本的同名(详情参考[1]),找不到gpu的情况下选择了同名的cpu进行下载,于是指定channel再下载(conda会顺带着把cudatoolkit也下载下来)
conda install pytorch==1.8.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
注意在这之前要确保配置了清华源,也就是-c后面的参数应该是你的conda已经认识的(可以用conda config --show也可以进到~/.condarc康康)
BTW,这个清华源好慢。
下载完成之后,命令行却出现
InvalidArchiveError("Error with archive /home/xiaoyawang/anaconda3/pkgs/pytorch-1.8.0-py3.7_cuda10.2_cudnn7.6.5_0.tar.bz2. You probably need to delete and re-download or re-create this file. Message from libarchive was:\\n\\nFailed to create dir 'lib/python3.7/site-packages/caffe2/python/onnx'")
emmmm...pytorch是没安装上的
问题解决
参考
[1] conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]_windSeS的博客-CSDN博客
以上是关于(仍未解决)模型搬到GPU,我的程序卡死了:pytorch,cuda,channel的故事的主要内容,如果未能解决你的问题,请参考以下文章
Python 用dlib来实现视频人脸检测 (很卡,我电脑带不动,卡死了。。)我的是轻薄本
xp系统安装delphi7 无论有无代码,一运行就出现CPU窗口,然后delphi就卡死了,求解决方法!