Failed to load library libOpenCL.so.1

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Dziś wróciłem do mojego projektu OpenCL (można go znaleźć tutaj). Nie próbowałem go jeszcze na świeżej instalacji Ubuntu 22 na moim Dellu g15 z RTX 3050 Ti. Choć mam zainstalowany metapakiet sterownika NVIDIA, mój program zgłosił, że jest jakiś problem z biblioteką współdzieloną:

Możesz sprawdzić, czy sterownik jest wybrany, w systemowym oknie About. W moim przypadku jest, ale polecenie nvidia-selector zgłasza, że mam nvidia-driver-525, co jest dziwne, bo zakładka sterowników mówi, że mam zainstalowany sterownik 470. Z drugiej strony uruchomienie polecenia nvidia-smi mówi, że mam włączony sterownik 470. Dziwne.

Natknąłem się na pewne rozwiązanie, które mówi, że powinienem zainstalować libopencl-clang-dev:

Bash
sudo apt install libopencl-clang-dev

Zrestartowałem IntelliJ IDEA 2022.3 Community Edition, a nawet przeprowadziłem restart systemu, ale bez skutku – nadal ten sam problem. Następną rzeczą do sprawdzenia jest dowiązanie symboliczne biblioteki libOpenCL pod kątem brakującego samego symlinka lub plików docelowych:

Bash
ls -la /usr/lib/x86_64-linux-gnu/ | grep libOpenCL

Mam oba.

W końcu znalazłem wpis stwierdzający, że powinienem mieć ocl-icd-opencl-dev:

Bash
sudo apt-get purge ocl-icd-opencl-dev
sudo apt-get autoremove # this could be risky however
sudo apt-get install ocl-icd-opencl-dev

I voilà – zadziałało. Mam jednak rozpoznane tylko GPU, bez CPU na liście dostępnych urządzeń. To dziwne, ale najprawdopodobniej powinienem zainstalować jakiś SDK Intela lub przynajmniej ich biblioteki, aby działało to również dla CPU. Pakiet NVIDIA nie dostarcza środowiska uruchomieniowego dla CPU. Teraz przypominam sobie, że na potrzeby projektu książkowego uruchamiałem to na Windowsie zamiast na Linuksie…

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Failed to load library libOpenCL.so.1”, 10 grudnia 2022, https://michalasobczak.pl/pl/posts/failed-to-load-library-libopencl-so-1-although-it-exists.html