来来来,英语好,计算机底子好的直接官网教程走起:
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
torch.cuda.is_available()返回false。一般也是由于cuda和driver不匹配或版本太落后导致的。
背景(dependence)
安装系统:Linux(Centos) ------但过程适用于各类Linux系统
$ uname -a # 查看内核/操作系统/CPU信息
Linux mstation 3.10.0-123.el7.x86_64
$ lsb_release -a #列出所有版本信息
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.0.1406 (Core)
Release: 7.0.1406
Codename: Core
gcc版本信息:
$ gcc -v #运行这个命令
gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
查看当前英伟达驱动信息:
$ nvidia-smi
详细步骤
由于原有cuda版本为8,驱动也很老。本来想升级,发现更麻烦。干脆全部卸载,再重装。
第一步,卸载原有cuda及其驱动
如果原来系统很干净,没啥老版本的,直接看第二步。
$ sudo /usr/local/cuda-8.0/bin/uninstall_cuda_X.Y.pl #找到自己的对应版本卸载
$ sudo /usr/bin/nvidia-uninstall #卸载驱动
第二步,禁用nouveau
在禁用之前,判断有无必要输入以下命令:
$ lsmod | grep nouveau
如果有输出,则需要先禁用nouveau;没有输出,则跳过这一步。
其实禁用就是在把nouveau加到黑名单上,这里需要管理员权限进行操作。
$ vi /etc/modprobe.d/blacklist.conf #这一步之前需要获取管理员权限,su
#如果上面这个地址上灭有blacklist.conf,可以找一找自己系统的黑名单在哪
然后再对应文件里加入如下两句:
blacklist nouveau
options nouveau modeset=0
然后reboot
,重启,再次用下述方法验证是否禁用成功,
$ lsmod | grep nouveau
第三步,禁用x server
也不知道为啥,重启之后,CentOS系统老是自动进入桌面界面,因此X server服务再开机的时候就自动开着了,导致了我新版本的cuda一直安装不上去。
解决办法:在正常开机之后,按Alt+Ctrl+F1
进入命令行界面,然后登陆root账户进行后续操作。
在命令行界面输入,
# sudo init 3
这样x server算是关闭了。
第四步,安装cuda10.0
cuda10.0从官网上下载,已经包含了driver英伟达驱动了的。(PS:cuda安装下载满足需求就行,不然版本太高不一定适合,也不一定可以安装。)
先进入root用户权限。然后:
$ chmod +x cuda_10.0.130_410.48_linux.run #进入相应文件夹,加权限
$ ./cuda_10.0.130_410.48_linux.run #开始安装
然后,先阅读一波你必须同意的文字(很长,不想看的话按q
键直接跳过),随后
accept
y #-----询问你驱动安装与否
y
.
.
.
y #上述我都是选y的,也是避免出错,大家可以根据自己需求选。我看有些教程的Opengl是选n,就是少安装一个东西,也不要紧。
然后,然后就成了。
第五步,加环境到普通用户./bashrc中
推出到普通用户后,在相应的账户下:
$ vi ~/.bashrc
在最后加上:
#cuda-10.0
export "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64"
export "PATH=$PATH:/usr/local/cuda-10.0/bin"
export "CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.0"
保存退出。
然后:
source ~/.bashrc
好了,算是安装成功了。
总结
其实,cd安装过程贼不顺利。
刚开始,还抱有简单命令升级cuda以及驱动的想法,最终不得不放弃;
后来,禁用nouveau也花了不少时间。黑名单文件位置,各位根据实际情况找;
最后,由于cd是远程ssh进行操作的,因此,每次重启发现x server始终没有关闭,于是不得不到寒冷的机房去对着终端的显示器进行操作:先进纯命令行窗口–>运行init 3
,然后再进行cuda的安装,安装完成之后恢复的话运行init 5
即可。
安装不易,坑太多。cd也没有一一踩过去,仅前述大坑,望各位按需求看。