Cuda安装与多版本管理, Linux环境变量 (caffe 编译 cannot open shared object file)

Cuda安装与多版本管理, ubuntu16.04

在使用caffe和tensorflow时可能要同时用到cuda9.0和cuda8.0两个版本。

cuda8.0下载网址为:https://developer.nvidia.com/cuda-80-ga2-download-archive
cuda9.0 下载网址为: https://developer.nvidia.com/cuda-90-download-archive

其他版本相应修改版本号应该可以找到。
下载runfile 文件按照提示选择即可,提示装驱动就装一下,注意装完驱动可能要重启电脑生效。装了高级驱动再装低版本cuda应该不需要再装驱动。

比如cuda8.0放在/usr/local/cuda8_0, cuda9.0放在/usr/local/cuda9_0.

然后 下载libcudnn ,需要注册账号,注意选择版本。比如tar.gz解压include和lib文件夹里的东西分别到前面cuda文件夹对应的位置

然后多版本运行的关键在于:环境变量
查看变量:

echo $PATH  
echo $LD_LIBRARY_PATH

可以在~/.bashrc 写入环境变量, 写完source ~/.bashrc即可激活。比如:

export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

这里主要就是先看看现在环境变量是啥,然后用这些命令修改下,比如cuda8.0改成9.0之类的。
另外这里调整的环境变量并不能立刻在其他session生效,可能还要重启一下,或者在其他session调用source ~/.bashrc

当然如果只是临时修改环境变量也可以直接bash运行export命令。

如果要在python脚本中修改环境变量,可以:

os.environ['LD_LIBRARY_PATH'] = '/usr/local/cuda-8.0/lib64'

这样是无效的:

os.system(‘export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH’)

猜想是由于这是新开一个子进程,临时环境变量无法影响当前进程。

总结
在caffe编译时,先在Makefile.config里修改cuda路径, 加上正确的环境变量应该就可以。还有Makefile.config里还有include和lib路径,注意hdf5的路径。

补充
今天忽然又找不到 libcudart.so.8.0, 确认环境变量无误后,还需要;
sudo ldconfig /usr/local/cuda-8.0/lib64
之后解决,作用大概是动态链接库管理。
参考:
libcudart.so.8.0: cannot open shared object file: No such file or directory #4944
https://github.com/BVLC/caffe/issues/4944

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于缺少或无法找到所需的共享对象文件引起的。根据提供的引用内容,可以看到有三个不同的错误信息,分别涉及到不同的模块和文件。 引用\[1\]中的错误信息表明在PyCharm界面中调试程序时出现了一个ImportError,指出找不到名为"libcusolver.so.8.0"的共享对象文件。 引用\[2\]中的错误信息表明在加载"D:\Anaconda\anaconda3\lib\site-packages\torch\lib\caffe2_nvrtc.dll"或其依赖项之一时出现了一个OSError,指出找不到指定的模块。 引用\[3\]中的错误信息表明在Jupyter Notebook中导入torch模块时出现了一个OSError,指出找不到"D:\anaconda3\lib\site-packages\torch\lib\caffe2_nvrtc.dll"或其依赖项之一。 根据这些错误信息,可以推断出问题可能是由于缺少名为"libcusolver.so.8.0"和"caffe2_nvrtc.dll"的共享对象文件引起的。解决这个问题的方法是确保这些文件存在于相应的路径中,并且可以被程序正确访问到。 如果你使用的是Linux系统,可以尝试通过安装相应的软件包来解决缺少共享对象文件的问题。例如,对于缺少"libcusolver.so.8.0"的情况,你可以尝试安装CUDA Toolkit来获取所需的文件。 如果你使用的是Windows系统,可以尝试重新安装或更新相关的软件包,以确保所需的共享对象文件存在并且可以被正确加载。 总之,解决这个问题的关键是确保所需的共享对象文件存在于正确的路径中,并且可以被程序正确访问到。 #### 引用[.reference_title] - *1* [libcusolver.so.8.0: cannot open shared object file: No such file or directory](https://blog.csdn.net/qq_31347869/article/details/104788423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [OSError: [WinError 126] 找不到指定的模块Errorloading“torch\lib\caffe2_nvrtc.dll“ or one of its ...](https://blog.csdn.net/weixin_67790049/article/details/128867508)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [OSError: [WinError 126] 找不到... Error loading “......caffe2_nvrtc.dll“ or one of its dependencies.](https://blog.csdn.net/weixin_43336281/article/details/129173978)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值