【问题标题】:cusolver library not found未找到 cusolver 库
【发布时间】:2016-07-08 09:19:04
【问题描述】:

我正在尝试在我的 python 代码中使用 skcuda,但是每当我想使用它时,它都会引发以下异常:

Traceback (most recent call last):
File "/home/rohola/Projects/Python/wordnetwork/s.py", line 6, in     <module>
from skcuda import cusolver
File "/home/rohola/anaconda3/lib/python3.4/site-     packages/skcuda/cusolver.py", line 51, in <module>
raise OSError('cusolver library not found')
OSError: cusolver library not found

我只是尝试使用 skcuda

from skcuda import cusolver
handle = cusolver.cusolverDnCreate()

我安装了 pycuda,NVIDIA CUDA 工具包。我的代码或依赖项有什么问题?

【问题讨论】:

  • 您使用的是哪个版本的 CUDA?
  • 我的 cuda 版本是 cuda-7.5
  • 是否具有正确的环境设置,例如 LD_LIBRARY_PATH ? docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/…
  • 是的,我设置为第一次使用。
  • 我有点困惑,但我没有安装用于 GPU 计算的线性代数的 BLAS 和 LAPACK。这甚至相关吗?

标签: python cuda scikits


【解决方案1】:
import ctypes
a = ctypes.cdll.LoadLibrary( "/usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so" )

了解我

OSError: /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcusolver.so: undefined symbol: GOMP_critical_end

根据this github thread,这似乎是一个尚未解决的问题

虽然是7.5版本

/usr/lib/x86_64-linux-gnu/libcusolver.so 

似乎指向效果很好。并且作者的修复似乎可以使用它。

【讨论】:

    【解决方案2】:

    我终于找到了解决问题的方法。首先,我用

    搜索了 libcusolver.so
    locate libcusolver.so
    

    然后将cusolver.py中的以下代码改为:

    _libcusolver = ctypes.cdll.LoadLibrary(_libcusolver_libname)
    

    到:

    _libcusolver = ctypes.cdll.LoadLibrary("/usr/local/cuda-7.5/targets/x86_64-linux/lib/"+_libcusolver_libname)
    

    现在是以下代码:

    from skcuda import cusolver
    handle = cusolver.cusolverDnCreate()
    

    没有任何错误。

    更新:

    如果你已经安装了cuda8.0或9.0,解决问题的最好方法是在cusolver.py中找到这一行:

    _libcusolver = ctypes.cdll.LoadLibrary(_libcusolver_libname)
    

    并在它之前添加这一行: ctypes.CDLL('libgomp.so.1', mode=ctypes.RTLD_GLOBAL)

    你必须确保你已经安装了 libgomp。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 2012-07-06
    • 2016-11-13
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多