Fehlermeldung: raise LinkerError(msg)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Culinaris20

Hi ich bekomme die Fehlermeldung

Code: Alles auswählen

raise LinkerError(msg)
numba.cuda.cudadrv.driver.LinkerError: cudadevrt.lib not found
nicht behoben.

Dabei funktioniert numba einwandfrei bis ich Cooperative Groups benutzen möchte. Durch hinzufügen von

Code: Alles auswählen

g = cuda.cg.this_grid()
g.synch()
taucht der Fehler auf. Habe es mit unterschiedlichen numba-Versionen und cudatoolkit-Versionen versucht, sogar das gesamte System schon mal neu aufgesetzt und alles neu installiert. Bis jetzt ohne Erfolg.

numba und codatoolkit wurden auf unterschiedliche Weise installiert mit pip und conda, ich habe auch unterschiedliche Versionen von numba, codatoolkites, pip und auch python probiert. Es wurde auch ein seperater env von conda erstellt und alles neu installiert, der Fehler bleibt.

Es scheint ja alles richtig installiert zu sein. Hier ausschnitt aus System info:

Code: Alles auswählen

.
.
.
__Python Information__
Python Compiler                               : MSC v.1916 64 bit (AMD64)
Python Implementation                         : CPython
Python Version                                : 3.9.12
Python Locale                                 : de_DE.cp1252

__Numba Toolchain Versions__
Numba Version                                 : 0.55.1
llvmlite Version                              : 0.38.0

__LLVM Information__
LLVM Version                                  : 11.1.0

__CUDA Information__
CUDA Device Initialized                       : True
CUDA Driver Version                           : (11, 7)
CUDA Runtime Version                          : 11030
CUDA NVIDIA Bindings Available                : False
CUDA NVIDIA Bindings In Use                   : False
CUDA Detect Output:
Found 1 CUDA devices
id 0    b'NVIDIA GeForce MX230'                              [SUPPORTED]
                      Compute Capability: 6.1
                           PCI Device ID: 0
                              PCI Bus ID: 1
                                    UUID: GPU-c1d67fa9-e4f3-77ac-0d9c-eeee3658db7d
                                Watchdog: Enabled
                            Compute Mode: WDDM
             FP32/FP64 Performance Ratio: 32
Summary:
        1/1 devices are supported

CUDA Libraries Test Output:
Finding nvvm from Conda environment
        named  nvvm64_40_0.dll
        trying to open library...       ok
Finding cudart from Conda environment
        named  cudart64_110.dll
        trying to open library...       ok
Finding cudadevrt from Conda environment
        named  cudadevrt.lib
Finding libdevice from Conda environment
        searching for compute_20...     ok
        searching for compute_30...     ok
        searching for compute_35...     ok
        searching for compute_50...     ok


__SVML Information__
SVML State, config.USING_SVML                 : True
SVML Library Loaded                           : True
llvmlite Using SVML Patched LLVM              : True
SVML Operational                              : True

__Threading Layer Information__
TBB Threading Layer Available                 : True
+-->TBB imported successfully.
OpenMP Threading Layer Available              : True
+-->Vendor: MS
Workqueue Threading Layer Available           : True
+-->Workqueue imported successfully.

__Numba Environment Variable Information__
None found.

__Conda Information__
Conda Build                                   : 3.22.0
Conda Env                                     : 4.14.0
Conda Platform                                : win-64
Conda Python Version                          : 3.9.12.final.0
Conda Root Writable                           : True
.
.
.

Auf den Test:

Code: Alles auswählen

python -c "from numba import cuda; cuda.cudadrv.libs.test()"
ist die Ausgabe:

Code: Alles auswählen

Finding nvvm from Conda environment
        located at C:\ProgramData\Anaconda3\Library\bin\nvvm64_40_0.dll
        trying to open library...       ok
Finding cudart from Conda environment
        located at C:\ProgramData\Anaconda3\Library\bin\cudart64_110.dll
        trying to open library...       ok
Finding cudadevrt from Conda environment
        located at C:\ProgramData\Anaconda3\Library\bin\cudadevrt.lib
Finding libdevice from Conda environment
        searching for compute_20...     ok
        searching for compute_30...     ok
        searching for compute_35...     ok
        searching for compute_50...     ok
Ich habe auch unterschiedliche IDE`s (VS-Code, PyCharm, Jupyter) ausprobiert.

HIer ist die vollständige Fehlermeldung von PyCharm:

Code: Alles auswählen

C:\Users\User\Desktop\test\Scripts\python.exe C:/Users/User/Desktop/test/main.py 
C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py:488: NumbaPerformanceWarning: Grid size 1 will likely result in GPU under-utilization due to low occupancy.
  warn(NumbaPerformanceWarning(msg))
Traceback (most recent call last):
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\cudadrv\driver.py", line 2715, in add_file
    driver.cuLinkAddFile(self.handle, kind, pathbuf, 0, None, None)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\cudadrv\driver.py", line 320, in safe_cuda_api_call
    self._check_ctypes_error(fname, retcode)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\cudadrv\driver.py", line 388, in _check_ctypes_error
    raise CudaAPIError(retcode, msg)
numba.cuda.cudadrv.driver.CudaAPIError: [301] Call to cuLinkAddFile results in CUDA_ERROR_FILE_NOT_FOUND

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\User\Desktop\test\main.py", line 159, in <module>
    kMean[BPG, (TPB_zeile, TPB_spalte)](d_datenpunkte, d_datenpunkt_zugehörigkeit, d_gruppenpunkt,
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py", line 491, in __call__
    return self.dispatcher.call(args, self.griddim, self.blockdim,
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py", line 625, in call
    kernel = _dispatcher.Dispatcher._cuda_call(self, *args)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py", line 633, in _compile_for_args
    return self.compile(tuple(argtypes))
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py", line 796, in compile
    kernel.bind()
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\dispatcher.py", line 178, in bind
    self._codelibrary.get_cufunc()
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\codegen.py", line 200, in get_cufunc
    cubin = self.get_cubin(cc=device.compute_capability)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\codegen.py", line 175, in get_cubin
    linker.add_file_guess_ext(path)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\cudadrv\driver.py", line 2636, in add_file_guess_ext
    self.add_file(path, kind)
  File "C:\Users\User\Desktop\test\lib\site-packages\numba\cuda\cudadrv\driver.py", line 2721, in add_file
    raise LinkerError(msg)
numba.cuda.cudadrv.driver.LinkerError: cudadevrt.lib not found

Kann da jemand helfen?
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Wenn du nach "cudadevrt.lib not found" auf Google suchst, kommen etliche Links. Schon mal da nach Hinweisen geschaut?
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Culinaris20

ThomasL hat geschrieben: Mittwoch 31. August 2022, 07:52 Wenn du nach "cudadevrt.lib not found" auf Google suchst, kommen etliche Links. Schon mal da nach Hinweisen geschaut?
Hallo.

Ja, habe ich. Diverse Hinweise habe ich schon ausprobiert, dennoch ist das Problem noch da.
Antworten