j'ai compilé mon script cuda via la commande suivante dans une bibliothèque partagée:le chargement d'une bibliothèque partagée (cuda) en python via ctypes, ne peut pas charger dynamiquement
nvcc --ptxas-options=-v --compiler-options '-fPIC' -o test_function.so mologram.cu
Puis, en Python:
import ctypes
from numpy.ctypeslib import ndpointer
lib = ctypes.cdll.LoadLibrary('./test_function.so')
lance le message d'erreur suivant:
OSError Traceback (most recent call last)
<ipython-input-12-02ce09d7f391> in <module>()
2 from numpy.ctypeslib import ndpointer
3
----> 4 lib = ctypes.cdll.LoadLibrary('./test_function.so')
/usr/lib/python2.7/ctypes/__init__.pyc in LoadLibrary(self, name)
438
439 def LoadLibrary(self, name):
--> 440 return self._dlltype(name)
441
442 cdll = LibraryLoader(CDLL)
/usr/lib/python2.7/ctypes/__init__.pyc in __init__(self, name, mode, handle, use_errno, use_last_error)
360
361 if handle is None:
--> 362 self._handle = _dlopen(self._name, mode)
363 else:
364 self._handle = handle
OSError: ./test_function.so: cannot dynamically load executable
Je l'ai fait des scripts similaires dans le passé et ne jamais rencontrer cette erreur. Je suis déconcerté de savoir pourquoi ce message d'erreur apparaît.
Toute entrée apprécié
Vous ne pouvez pas charger la bibliothèque partagée car ce n'est pas une bibliothèque partagée ... – talonmies