2016-07-08 2 views
0

Я пытаюсь использовать skcuda в моем питона коде, но всякий раз, когда я хочу использовать его, он поднимается следующее исключение:библиотека cusolver не найдено

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 Toolkit. Что не так в моем коде или зависимостях?

+0

Какую версию CUDA вы используете? – kangshiyin

+0

Моя версия cuda - cuda-7.5 –

+0

с правильной настройкой окружения, такой как LD_LIBRARY_PATH? http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#post-installation-actions – kangshiyin

ответ

1

Я, наконец, нашел решение моей проблемы. Во-первых, я искал 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() 

работает без любая ошибка.

3
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 

, кажется, указывают на хорошо работает , И авторское исправление, похоже, с этим работает.

Смежные вопросы