Could not dlopen library ‘libcublas.so.10.0‘ 解决方法

Could not dlopen library ‘libcublas.so.XXX.0’ 的解决方法

Github上的项目通常需要不同版本的tensorflow,然而不同版本的tensorflow可能需要不同的Cuda版本。若Cuda版本不对应,则不一定能成功调用GPU,纵使程序成功运行,也是在大量占用CPU资源。

本解决方法主要利用Cuda各版本向下兼容的特点,即在当前版本Cuda库文件夹中放入所需要的高版本 library文件。

声明:

  1. 本方法存在局限性;
  2. 本方法针对小白,大佬肯定可以从Cuda文件中直接找到需要的库文件,或者其它更优的解决方法,欢迎分享在评论区;
  3. libcublas.so.10.0相关库文件可以在个人主页进行下载

首先放上解决前后的实验运行截图:
在这里插入图片描述
上图是缺少libcublas.so.10.0等库文件时的运行情况,程序运行期间,GPU内存占用稳定在191MiB。此时使用top命令查看CPU使用情况。
在这里插入图片描述
可以看出CPU使用率来到了643%,实际实验过程中1200%也经常出现。


在这里插入图片描述
上图是添加libcublas.so.10.0等库文件后的运行情况,GPU利用率直接升至97%,内存占用也是来到了8000+MiB。此时再用top命令查看CPU使用情况。
在这里插入图片描述
发现CPU占用只有120%左右。使用nvcc --version命令查看当前Cuda版本。
在这里插入图片描述
仍旧为9.0,并不影响其它需要Cuda9.0环境的程序运行。


下面介绍解决问题的整体过程:

  1. 安装VMware虚拟机
  2. 下载Ubuntu18.04镜像iso文件
  3. 在VMware中安装Ubuntu18.04
  4. 下载并在ubuntu18.04中安装Cuda10
  5. 找到安装的库文件,拷贝到实验主机中

接下来详细说明解决过程以及操作原因:

第1步:安装VMware虚拟机,选择试用for windows即可。
(本文假定使用环境为:个人PC系统为Windows10,跑程序使用系统为Ubuntu的公共机。为了获取cuda10的库文件,我们需要将其进行安装,因为要防止破坏公共机上已有的Cuda环境,所以采用在个人PC上安装虚拟环境)

第2步:下载Ubuntu18.04镜像iso文件,选择第一个即可。
(笔者最开始选用了Ubuntu20,但是安装过程中报内核版本错误,修改内核会导致系统的不稳定,所以降回18.04)

第3步:VMware中安装Ubuntu。

第4步下载并在ubuntu18.04中安装Cuda。
(因为公共机采用的是ubuntu系统,因此下载ubuntu对应的cuda10)

安装指令参考官方指导:
在这里插入图片描述
但是在执行第四步sudo apt-get install cuda时可能报错,因笔者未能截屏,因此借用Jayce~大佬的实验截屏,报错类型完全相同,不过笔者报错内容是cuda-10-0
在这里插入图片描述
这里将第四条指令修改为

sudo apt-get install aptitude
sudo aptitude install cuda

第5步:找到安装的库文件,拷贝复制到实验主机中。
(安装结束后所需要的库文件在/usr/local/cuda/lib64目录下,拷贝至公共机的Cuda库文件目录[……/lib64]下即可)

这里复制只用复制so.10.0so.10.0.130文件,其余文件不用复制,以防破坏原Cuda库文件,复制过程中 !!!没有!!! 覆盖的操作。
在这里插入图片描述
复制后部分库文件夹如下:
在这里插入图片描述
至此,即可成功加载库文件,并调用GPU。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值