参考博客 https://blog.csdn.net/joyce_peng/article/details/105661585
https://blog.csdn.net/sinat_33425327/article/details/84823272?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight
大概意思指的是安装pytorch版本时候编译的cuda版本是7050,而现在使用的是cuda8.0以上的新版本在调用pytorch,所以造成不匹配. 可能原因:每一个pytorch版本都有对应的cuda版本,可能是在安装pytorch的时候,选择的pytorch版本所对应的版本cuda版本与本机所安装的cuda版本不相符。
解决思路 1.重装一个pytorch版本, 和本机安装的cuda 匹配.
2.再装一个cuda版本和这个pytorch相匹配.
#查看pytorch版本
import torch
torch.version ‘0.3.0.post4’
#查看pytorch版本对应的cuda版本
torch.version.cuda ‘7.5.18’
#查看cuda是否可用
torch.cuda.is_available() True
查看linux 电脑安装的 cuda
nvcc -V 查询本环境下,电脑使用的cuda 版本
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
参考博客1 在ubuntu上安装多个版本的CUDA,并且可以随时切换
https://blog.csdn.net/ksws0292756/article/details/80120561
参考博客2 ubuntu18.04 安装多版本cuda ,原来版本为9.0,在新增8.0
https://blog.csdn.net/qq_23996885/article/details/90205937
下载cuda8.0 cuda_8.0.61_375.26_linux.run
下载补丁
下载完成以后,我们利用cd命令,进入到cuda_8.0.61_375.26_linux.run文件所在的目录中,然后运行下面的指令,进行安装(注意这个文件名,前面的cuda_8.0.61代表cuda的版本,后面的375.26代表的对应的NVIDIA驱动的版本,这里我用cuda8.0的安装过程为例,9.0和9.1同理)
安装过程中在建立软链接时需要注意一下,如果你是第一次安装cuda,那么毫无疑问输入y(yes),但是如果你是安装额外版本的cuda,是否选择y(yes)就要看你的具体需求而定,简言之,就是如果你希望启用当前安装的cuda版本,就选y,如果你只是想安装这个版本,而暂时还不想启用该版本时,就选n。
sudo sh cuda_8.0.61_375.26_linux.run #开始安装
#…一堆协议说明…
#直接按q退出协议说明.
zerozone@zerozone: accept/decline/quit: accept #接受协议
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n
Install the CUDA 8.0 Toolkit?
(y)es/(n)o/(q)uit: y #是否安装工具包,选择y
Enter Toolkit Location
[ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y #添加链接注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本
Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y #安装样例
不安装驱动,其他默认就可以
2.4 bashrc
vim ~/.bashrc
1
在末尾加上
export PATH=“
P
A
T
H
:
/
u
s
r
/
l
o
c
a
l
/
c
u
d
a
/
b
i
n
"
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
"
PATH:/usr/local/cuda/bin" export LD_LIBRARY_PATH="
PATH:/usr/local/cuda/bin"exportLDLIBRARYPATH="LD_LIBRARY_PATH:/usr/local/cuda/lib64/”
export LIBRARY_PATH="
L
I
B
R
A
R
Y
P
A
T
H
:
/
u
s
r
/
l
o
c
a
l
/
c
u
d
a
/
l
i
b
64
"
123
原
来
文
章
中
的
是
这
样
的
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
LIBRARY_PATH:/usr/local/cuda/lib64" 123 原来文章中的是这样的 export LD_LIBRARY_PATH=
LIBRARYPATH:/usr/local/cuda/lib64"123原来文章中的是这样的exportLDLIBRARYPATH=LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=
P
A
T
H
:
/
u
s
r
/
l
o
c
a
l
/
c
u
d
a
/
b
i
n
e
x
p
o
r
t
C
U
D
A
H
O
M
E
=
PATH:/usr/local/cuda/bin export CUDA_HOME=
PATH:/usr/local/cuda/binexportCUDAHOME=CUDA_HOME:/usr/local/cuda
123
但是我使用的是上面那个
然后让更改生效
source ~/.bashrc
环境变量这里和windows 一样谁放前面执行谁
cuda 那个软链接放前面可以用
sudo rm -rf cuda 删除cuda这个软链接
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
将/usr/local/cuda链接到 /usr/local/cuda-9.0 自由切换
把cudn-10.0放前面.切换指令会无效.
3 安装cudnn 5.1
下载地址:https://developer.nvidia.com/rdp/cudnn-archive
安装 cudnn V5.1 library for linux
解压文件
得到文件夹 cuda
复制 cuda文件夹下的文件到cuda对应的目录,更改权限,安装完成
命令如下
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
将 cuda/include/cudnn.h复制到/usr/local/cuda/include/目录下
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
将cuda/lib64/libcudnn*(所有前缀匹配libcudnn的文件)复制到/usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
将 /usr/local/cuda/include/cudnn.h设置为所有人都可以读
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
将/usr/local/cuda/lib64/libcudnn*设置为所有人都可以读
注意: 之前我下载的是deb的安装文件,直接用dpkg -i命令安装这个,然后不管用,我就下载了可以解压,然后自己复制文件的那个版本
4 切换版本
上面涉及到目录的,都是cuda,没有指定哪一个,就是因为使用软链接的方式,在/usr/local文件夹下面看到,有两个版本的cuda,如下图:
现在指向的是8.0版本
进入/usr/local
nvcc -V 查看cuda版本
要想切换版本:删除这个软链接,自己建立一个指向9.0的软链接
进入/usr/loca目录下
sudo rm -rf cuda 删除cuda这个软链接
sudo ln -s /usr/local/cuda-9.0 /usr/local/cuda
将/usr/local/cuda链接到 /usr/local/cuda-9.0