---
title: "Failed to load library libOpenCL.so.1"
url: https://michalasobczak.pl/pl/posts/failed-to-load-library-libopencl-so-1-although-it-exists.html
author: "Michał Sobczak"
description: "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ą:"
published: 2022-12-10T07:52:48.000Z
updated: 2024-08-29T08:23:44.000Z
language: pl
categories: ["AI/ML"]
tags: ["HPC", "OpenCL", "Ubuntu"]
license: CC BY-NC-ND 4.0 (https://creativecommons.org/licenses/by-nc-nd/4.0/)
---
# Failed to load library libOpenCL.so.1

Dziś wróciłem do mojego projektu OpenCL (można go znaleźć [tutaj](https://github.com/michalasobczak/publications/tree/master/opencl)). 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ą:

![](https://michalasobczak.pl/wp-content/uploads/2022/12/image-1.png)

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…
