Could not load dynamic library 'libcudart.so.10.0';
本文感谢以下参考博客
首先查看服务器信息,用到的linux指令是:
lsb_release -a
LSB是Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
但是这里我报错了,大概的意思就是没有安装相应的包,所以用不了这个命令
bash: lsb_release: command not found...
然后就安装一下相关的东西,用 yum provides */lsb_release看了一下,这个包是在redhat-lsb里面的,所以安装一下redhat-lsb
很气啊,我没有root权限,安装失败,所以这个指令我算是用不了了,想安装的同学们可以看一下参考那部分的文章,yum install一下就行了。
但是为了看到我这个机器的信息,我用了别的指令
查看是ubuntu还是centOS:
cat /etc/redhat-release
查看机器驱动版本
cat /proc/driver/nvidia/version
最后得到结论,本课题组的该服务器为centOS7的版本
为了复现论文,我准备重新配一个环境,但是conda create创建的时候,他提示让我更新anaconda,所以更新了一下,结果导致我linux命令行只有一个(base),如图
很气啊,很气,然后就各种找解决办法,最后是这么解决的
好了问题解决,具体的步骤可以参考参考-5的内容
一开始我还以为是环境变量的问题,还让别人帮我看了一下他们自己的环境变量,后来发现没啥问题,这一部分特别感谢阿果同学,小李同学和汪兔乙同学,查看环境变量的命令是:
echo $PATH
尽管这么干,可以修改好linux命令提示符,但是却丢失了本来的(base)的信息提示,这个问题找了好多办法都没解决,什么时候把这个问题解决了再发一个博客吧
言归正传,前期准备就是为了下载cuda和cudnn,第一步就是看看服务器的信息,从而判断你要下载什么cuda
这里我看到的我的服务器信息就是centOS7
这次我采用的官网下载的方式,首先下载cuda,具体网页查看参考-6
红线处标记出来的就是查看以前的cuda版本,然后选择你所需要的就行,这里我用10.0
我选择的是以下的参数:
我下载的是cuda10.0的,用以匹配tensorflow1.13.1,因为之前看了一下我的centos是7的版本,所以这里version就选择7,我不采用联网下载的方式,就用本地下载,需要先将run文件下载到本地,然后再上传到服务器
下载链接在参考-7,不过下载这个需要注册个账号,也挺快的,而且cudnn挺小的,很好下
主要就是看着后面的for进行选择,找到对应的版本就行了
都下载下来之后再上传到服务器,接下来就准备安装了
首先安装cuda,这里我首先激活了我的虚拟环境,然后用cd命令进入到了cuda10.0那个run文件所在的文件夹下面,执行
sh cuda_10.0.130_410.48_linux.run
然后就开始了一系列安装操作
这里好像就是再问你是否同意某个协议,肯定输入accept啊
输完accept回车之后,就会问是否要安装英伟达驱动,输入y
然后就emmmm踩了个大坑!
会提示你没有root权限,如图
后来经过各种踩坑,终于摸索到了一个安装的办法!!!!
首先,看了很多别人的例子,需要安装的东西最多就两个,如图
这个图来自参考-3,可以看到安装的东西无非就两个,一个是toolkit,毕竟不安装工具包,下载cuda不是下载了个寂寞吗,其次samples就是常见的cuda用法,详情可以看一下参考-8,这里不再赘述,所以,正确的安装流程应该是这样:
然后就会看到下面激动人心地提示正在安装了,md,到这一步真不容易啊感觉
最下面是一个警告,大概意思就是没有安装驱动,不过无所谓,毕竟是实验室的资源,已经有驱动了,至此cuda安装完成
补充(2022-10-17)
对该文章进行补充说明,我发现我安装过程长得和别人不一样的原因就是cuda版本不对,我现在重新安装了一个cuda10.1+cudnn7.6.4的环境,我发现10.1安装界面就长得一样了,这里记录一下:
首先还是输入accept,回车
这里安装你自己想安装的就行,选择是或否的方式是按一下空格,这里我只选择了toolkit10.1,然后就要修改路径了,光标放在那个选项上面,以大写的形式按A(最下面那一行看到的提示,这里被水印挡住了,挡住部分的内容是:‘A’: Advanced options)
按完A之后进入这个界面:
个人建议都别选,毕竟你没root权限,稳点好,然后在第一个里面设置一下路径就行了。
设置完之后按Done就行,然后再别的里面也是一样的修改(之前的界面还有一个options的选项,在里面都设置一下)
完了之后按install就行了,然后就会得到成功安装的提示
安装成功的提示是:
不成功的提示就是(我没设置路径,我还没root权限):
相对而言,cudnn的安装过程简单了许多,也不需要选择啥东西,总结一下就是:解压,复制,给权限,如图:
第一个箭头的部分,就是解压的命令,把cudnn的tgz文件解压到了当前工作的文件夹,然后我就cd进了这个文件夹,把其中的两个文件复制到了之前安装cuda的那个文件夹,在toolkit文件夹里面,有对应的include和lib64,最终执行cuda的时候是执行toolkit里面的,所以我们要复制过去,之后chmod a+r一下给所有用户添加读的权限,命令如下:
tar -xvf cudnn-10.0-linux-x64-v7.6.5.32.tgz # 解压命令
cp include/cudnn.h /your_path/include/ # 复制文件
cp lib64/libcudnn* /your_path/lib64/
chmod a+r /your_path/include/cudnn.h # 给刚才复制过来的文件加一个权限
chmod a+r /your_path/lib64/libcudnn*
这一部分的参考完全来自参考-1,可以看一下这位大佬的操作,其中他使用vim打开了.bashrc文件,这里个人建议可以直接在你的个人账户目录下找到这个文件直接修改,按照他的方法也可以,其中vim的操作我咨询了一下我旁边的同学,这里特别鸣谢汪兔乙同学。
vim打开之后如果想编辑,就输一下i
编辑完了想退出先按一下esc,然后输入:wq。就完事了,这个命令的意思是保存并退出。
把这个文件配置完之后记得刷新一下:
source ~/.bashrc
可以运行一下nvcc -V看一下版本是不是切换了
我这里成功换成了10.0
之后不是很放心啊,看到对应版本安装了一个torch1.2,测试了一下,结果很令人满意:
这样我们的cuda就配置好了
这个网上找了好多教程,不过最后是自己摸索出来的,我用的方法是:
在.bashrc文件里面写入两种不同的变量路径,就是上一个配置环境变量的操作,如图:
需要哪个cuda就把另外一个注释掉就行了,然后别忘了刷新一下,命令如下:
source ~/.bashrc
然后我测试了一下,直接上结果:
可以看到,之前cuda是10.1的,下面改完之后变10.0的了(因为有水印看的不是很清楚)
然后应该就没什么了,至此无root权限安装cuda已经完成。
感谢以下几位同学的帮助:
阿果同学
网管同学
小李同学
汪兔乙同学
防火防盗防诈骗