[fix] libc10_cuda.so: undefined symbol: cudaMemPoolSetAttribute, version libcudart.so.11.0

19 篇文章 0 订阅
10 篇文章 0 订阅

这里写自定义目录标题

问题描述

conda clone一个环境后, import torch的时候报错:
torch/lib/libc10_cuda.so: undefined symbol: cudaMemPoolSetAttribute, version libcudart.so.11.0

解决办法

首先找到libcudart.so.11.0的位置, 发现在ENV/lib/libcudart.so.11.0里,
在这里插入图片描述

和原始环境的so文件不一致, so连接在clone的时候出错了
在这里插入图片描述

修改回去就可以,

unlink libcudart.so.11.0
ln -s libcudart.so.11.8.89 libcudart.so.11.0

同理对libcusparse.so.11也修改下连接

unlink libcusparse.so.11
ln -s libcusparse.so.11.7.5.86 libcusparse.so.11

之后就能import torch了

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ctypes 是 Python 中的一个模块,它允许调用 C 库的函数。而 OSError 是一个异常类,表示操作系统相关的错误。当在使用 ctypes 调用 C 库函数时,如果出现 libc10_cuda.so: cannot open 的错误,这表示无法打开 libc10_cuda.so 这个库文件。 产生这个错误的原因可能有以下几种: 1. 找不到库文件:在调用函数时,操作系统无法找到 libc10_cuda.so 这个库文件。这可能是因为文件路径设置错误,或者库文件并不存在。 解决方法:确认库文件是否存在于指定路径,并且路径名称是否正确。如果库文件确实不存在,可能需要重新安装相关软件或从其他来源获取该库文件。 2. 权限问题:在尝试打开库文件时,当前用户没有足够的权限来访问该文件。 解决方法:确保当前用户具有访问该库文件的权限。可以通过更改文件权限或使用具有足够权限的用户来解决该问题。 3. 库文件版本不匹配:可能存在库文件版本不匹配的情况,即使用的库文件与程序代码或其他依赖项不兼容。 解决方法:检查程序依赖的库文件版本是否与系统中存在的库文件版本匹配。如果不匹配,可能需要更新库文件或调整代码以适应库文件版本。 总之,当出现 ctypes OSError: libc10_cuda.so: cannot open 的错误时,我们需要检查库文件是否存在、权限是否正确以及版本是否匹配等方面的问题,并根据具体情况采取相应的解决方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值