Как установить libOpenCL.so на Ubuntu

Вопрос или проблема

Я скачал intel_sdk_for_opencl_2016_ubuntu_6.0.0.1049_x64, попытался запустить install.sh, но он выдает «Unsupported OS», поэтому я где-то прочитал, что нужно создать .deb файл из одного из RPM файлов, я сделал это с 2:

opencl-1.2-devel_6.0.0.1049-2_amd64.deb

opencl-1.2-intel-devel_6.0.0.1049-2_amd64.deb

Установил их оба с помощью sudo dpkg -i, но у меня по-прежнему нет необходимой libOpenCL.so

Теперь я застрял… 🙁

Похоже, что libOpenCL.so предоставляется пакетом ocl-icd-opencl-dev. Чтобы установить этот пакет, выполните:

sudo apt update
sudo apt install ocl-icd-opencl-dev

Теперь libOpenCL.so должен находиться в /usr/lib/x86_64-linux-gnu/libOpenCL.so

Метод, предложенный Ником Вайнбергом, устанавливает довольно устаревшую версию драйвера, поэтому я бы посоветовал скачать его непосредственно с сайта вашего производителя оборудования.

Поскольку у вас процессор Intel, выполните следующие действия

  1. Откройте страницу драйверов Intel OpenCL, перейдите к разделу “Intel CPU Runtime for OpenCL™ Applications 18.1 for Linux* OS (64bit only)” и нажмите “Download”

  2. Сайт попросит вас зарегистрироваться и войти в систему. Это обязательно. Затем вы будете направлены на ссылку с tgz-архивом.

  3. Скачайте этот архив и установите его следующим образом.

    tar -pvxf l_opencl_p_18.1.0.013.tgz
    cd l_opencl_p_18.1.0.013/
    sudo ./install.sh
    

Этот скрипт установки запишет множество библиотек в /opt/intel и создаст символическую ссылку (или заменит старую) /usr/lib/x86_64-linux-gnu/libOpenCL.so.

Мое понимание темы заключается в том, что указанные выше шаги позволяют OpenCL получить доступ к вашему процессору Intel. Но если у вас есть Intel HD Graphics, имеет смысл разрешить OpenCL использовать эту интегрированную графику тоже. Затем выполните следующее

  1. Откройте страницу драйверов Intel OpenCL снова, но на этот раз перейдите к разделу “Linux* OS Ubuntu* 16.04.x (deb)” в разделе “Intel® Graphics Technology”. Затем у вас есть два выбора: “Download” и “Build”. Используйте ссылку “Download”, вас приведет на страницу с предварительно собранными бинарными файлами (“Build” приведет к исходному коду на github Intel, но я никогда не пробовал собирать его из исходников).

  2. Следуйте инструкциям, представленным там. Я только что скопировал их сюда с одной поправкой – используйте sudo apt вместо sudo dpkg -i *.deb, так как dpkg не проверяет зависимости:

    mkdir neo
    cd neo
    wget https://github.com/intel/compute-runtime/releases/download/19.14.12751/intel-gmmlib_19.1.1_amd64.deb
    wget https://github.com/intel/compute-runtime/releases/download/19.14.12751/intel-igc-core_19.11.1622_amd64.deb
    wget https://github.com/intel/compute-runtime/releases/download/19.14.12751/intel-igc-opencl_19.11.1622_amd64.deb
    wget https://github.com/intel/compute-runtime/releases/download/19.14.12751/intel-opencl_19.14.12751_amd64.deb
    wget https://github.com/intel/compute-runtime/releases/download/19.14.12751/intel-ocloc_19.14.12751_amd64.deb
    sudo apt install ./*deb
    

Обратите внимание, что . в ./*deb важна: без этой точки вы получите ошибки Unable to locate и Couldn't find.

P.S. сайт Intel перечисляет подходящие процессоры, убедитесь, что ваш присутствует в этом списке.

Я хотел, чтобы OpenCL работал для darktable на Ubuntu 19.04 x64.

Изначально darktable-cltest сообщает

0.016782 [opencl_init] could not find opencl runtime library 'libOpenCL'
0.016851 [opencl_init] could not find opencl runtime library 'libOpenCL.so'
0.016988 [opencl_init] found opencl runtime library 'libOpenCL.so.1'
0.017020 [opencl_init] opencl library 'libOpenCL.so.1' found on your system and loaded
0.021674 [opencl_init] found 1 platform
0.077428 [opencl_init] found 1 device
0.077458 [opencl_init] discarding device 0 `Intel(R) HD Graphics 5500 BroadWell U-Processor GT2' because the driver `OpenCL 1.2 beignet 1.3' is blacklisted.
0.077464 [opencl_init] no suitable devices found.
0.077469 [opencl_init] FINALLY: opencl is NOT AVAILABLE on this system.
0.077473 [opencl_init] initial status of opencl enabled flag is OFF.

Но после sudo apt-get install intel-opencl-icd все работает нормально.

Эта ветка: https://einsteinathome.org/content/quick-guide-how-install-opencl-amd-gpus-linux-kubuntu-1804-and-similar-distro решила мою проблему.

Для этого просто перейдите на официальный сайт AMD и найдите ваши драйверы https://www.amd.com/en/support, скачайте нужный для Linux, в настоящее время актуальная версия 18.30, скачайте ее и извлеките содержимое в папку.

Теперь используйте терминал, перейдите в эту папку и просто выполните ./amdgpu-install –opencl=legacy,pal –headless

Мне пришлось сделать это в дополнение к установке пакета ocl-icd-opencl-dev.

ОБНОВЛЕНИЕ для людей, посещающих это в 2025 году: более новые релизы от Intel, похоже, больше не поддерживают полное аппаратное ускорение на «устаревшем» (т.е. обычном) пользовательском оборудовании, как указано в этой проблеме на GitHub, поэтому вот что нужно сделать:

  • Если у вас новый сервер Xenon (я полагаю, это новая целевая аудитория Intel), попробуйте установить последнюю версию:

    # НОВЕЙШАЯ версия для новейших серверов
    RVER=v2.5.6 IVER=2_2.5.6+18417 EVER=24.52.32224.5 LVER=1.6.32224.5
    COMPILER=https://github.com/intel/intel-graphics-compiler/releases/download/$RVER/intel-igc-
    COMPUTE=https://github.com/intel/compute-runtime/releases/download/$EVER/intel-
    curl -SLZC - --output-dir /tmp/icl$EVER --create-dirs --remote-name-all --http1.1\
        "$COMPILER{core,opencl}-${IVER}_amd64.deb"\
        "$COMPUTE{level-zero-gpu-dbgsym_$LVER,opencl-icd-dbgsym_$EVER}_amd64.ddeb"\
        "$COMPUTE{level-zero-gpu_$LVER,opencl-icd_$EVER}_amd64.deb"\
        "https://github.com/intel/compute-runtime/releases/download/$EVER/libigdgmm12_22.5.5_amd64.deb"
    sudo chown -R _apt:`id -ng` /tmp/icl$EVER
    sudo apt-get install ocl-icd-opencl-dev && sudo dpkg -Ri /tmp/icl$EVER
    

    (Смотрите GitHub, чтобы найти ссылки на последнюю версию)

  • Для всего остального (например, мой ноутбук 2019 года с Icelake Client iGPU), установите предыдущую версию:

    # СТАРАЯ версия для типичного потребительского оборудования
    RVER=1.0.17537.20 EVER=24.35.30872.22 LVER=1.3.30872.22
    COMPILER=https://github.com/intel/intel-graphics-compiler/releases/download/igc-$RVER/intel-igc-
    COMPUTE=https://github.com/intel/compute-runtime/releases/download/$EVER/intel-
    curl -SLZC - --output-dir /tmp/icl$EVER --create-dirs --remote-name-all --http1.1\
        "$COMPILER{core,opencl}_${RVER}_amd64.deb"\
        "$COMPUTE{level-zero-gpu-dbgsym_$LVER,level-zero-gpu-legacy1-dbgsym_$LVER,opencl-icd-dbgsym_$EVER,opencl-icd-legacy1-dbgsym_$EVER}_amd64.ddeb"\
        "$COMPUTE{level-zero-gpu-legacy1_$LVER,level-zero-gpu_$LVER,opencl-icd-legacy1_$EVER,opencl-icd_$EVER}_amd64.deb"\
        "https://github.com/intel/compute-runtime/releases/download/$EVER/libigdgmm12_22.5.0_amd64.deb"
    sudo chown -R _apt:`id -ng` /tmp/icl$EVER
    sudo apt-get install ocl-icd-opencl-dev && sudo dpkg -Ri /tmp/icl$EVER
    

(Побочная заметка: все это зависит от последней LTS Ubuntu – v24, она же Noble на 2025 год)

.

Ответ или решение

Установка библиотеки libOpenCL.so на Ubuntu может вызвать трудности, особенно если у вас есть специфические требования, такие как необходимость использования библиотек от конкретного производителя оборудования. Рассмотрим подробный процесс установки, учитывая различные подходы и варианты, доступные для систем на базе Ubuntu.

Теория

OpenCL (Open Computing Language) — это фреймворк для написания программ, которые выполняются на различных процессорных архитектурах и платформах, включая центральные, графические процессоры и другие типы вычислительных устройств. Одним из ключевых компонентов, необходимых для работы OpenCL-программ, является библиотека libOpenCL.so. Эта библиотека обеспечивает интерфейс приложения и платформу OpenCL, необходимую для использования любой аппаратной поддержкой OpenCL.

На Linux, и в частности на Ubuntu, libOpenCL.so чаще всего устанавливается в составе более широкого пакета с поддержкой графических или центральных процессоров. Этот пакет может быть предоставлен производителями оборудования, такими как Intel или AMD, или же быть доступным через репозитории Ubuntu в виде пакета ocl-icd-opencl-dev.

Пример

Рассмотрим конкретный случай, где пользователь установил пакеты opencl-1.2-devel и opencl-1.2-intel-devel, но не смог найти необходимую библиотеку libOpenCL.so. Поскольку данные пакеты не смогли удовлетворить потребности пользователя, это означает, что необходимо рассмотреть альтернативные способы установки.

Одним из распространенных решений на Ubuntu является установка через пакет ocl-icd-opencl-dev:

sudo apt update
sudo apt install ocl-icd-opencl-dev

Этот пакет часто предоставляет libOpenCL.so и делает ее доступной в системе по пути /usr/lib/x86_64-linux-gnu/libOpenCL.so.

Однако, есть ситуации, когда может быть необходимо использовать версии от производителя, особенно если вы хотите использовать последние оптимизации или специальную поддержку оборудования. Так, для Intel есть возможность получения драйверов OpenCL напрямую с их сайта.

  1. Зайдите на страницу драйверов Intel для OpenCL и найдите раздел "Intel CPU Runtime for OpenCL™ Applications". Скачайте рекомендованную версию, зарегистрируйтесь на сайте, и загрузите архив.
  2. Разархивируйте и установите загруженные файлы:
tar -pvxf l_opencl_p_18.1.0.013.tgz
cd l_opencl_p_18.1.0.013/
sudo ./install.sh
  1. Если вы также хотите использовать интегрированную графику Intel HD, следует загрузить и установить драйверы из раздела "Intel® Graphics Technology". Для этого используйте инструкции с GitHub, например, для версии 19.14.12751, загрузите соответствующие .deb файлы и установите их с проверкой зависимостей.

Применение

Указанные инструкции должны охватить большинство потребностей установки libOpenCL.so в Ubuntu. Важно учитывать, что каждая установка может иметь свои особенности в зависимости от аппаратного обеспечения и версии операционной системы. Следует убедиться, что используемые компоненты совместимы с вашей системой и что вы выбираете самый актуальный и подходящий для вашего оборудования метод установки.

Если вы используете другую графическую платформу, например, от AMD, то процесс получает свою специфику. На сайте поддержки AMD можно найти и скачать драйверы именно для вашей системы и архитектуры. После этого процесс установки может включать использование специфических команд, таких как:

./amdgpu-install --opencl=legacy,pal --headless

В 2025 году ситуация с поддержкой может измениться, и в будущем Intel может сосредоточиться на оптимизации своих решений для серверов. Поэтому для устаревших и потребительских оборудования рекомендуется использовать более старые версии драйверов, которые все еще поддерживают ваш процессор или графику.

В заключение, установка libOpenCL.so на Ubuntu — это процесс, который зависит от множества факторов, включая ваш процессор, графический процессор и текущие требования к системе. Убедитесь, что вы следуете актуальным инструкциям и используете правильные пакеты для вашего оборудования, чтобы избежать проблем с совместимостью и производительностью.

Оцените материал
Добавить комментарий

Капча загружается...