LinuxForum.Fans
Тема

Настройка Debian 13. Ускорение вычислений на GPU (OpenCL, CUDA, ROCm)

Автор: survordie 1 сообщений 411 просмотров
14.08.2026 15:06 · отредактировано #440265

Предыдущая часть по установке базовых программ находится тут.

В этом разделе мы рассмотрим основные технологии, которые позволяют программам использовать мощность видеокарты для ускорения вычислений. Процессоры (CPU) хороши для последовательных задач, а видеокарты (GPU) — для параллельных. Чтобы поручить видеокарте выполнение миллионов однотипных операций (например, обработка каждого пикселя изображения), программы используют специальные технологии.
Существуют три основных подхода:

  1. OpenCL — это открытый стандарт, который позволяет программам использовать вычислительные мощности разных устройств (GPU, CPU). Его реализации существуют для видеокарт AMD, NVIDIA, Intel и др.
  2. ROCm это открытая платформа от AMD для высокопроизводительных вычислений. Включает в себя:

    • поддержку OpenCL
    • язык и среду выполнения HIP (Heterogeneous-Compute Interface for Portability) — прямой аналог CUDA, позволяющий переносить код с NVIDIA
  3. CUDA — это проприетарная платформа от NVIDIA для параллельных вычислений. Работает только на видеокартах NVIDIA. OpenCL также доступен на этих картах через драйвер (см. пункт 1), но не входит в состав CUDA.

Из вышеизложенного получаются следующие приоритеты:
1. Если приложение умеет работать с CUDA или HIP, выбираем их (для NVIDIA или AMD соответственно)
2. Если приложение умеет работать только с OpenCL - ставим OpenCL.

Например, Blender - требует наличие HIP или CUDA, а поддержку OpenCL из него выпилили. Следовательно, при отсутствии этих технологий рендер будет идти только на CPU.
DaVinci Resolve умеет работать с OpenCL или CUDA. А HIP не поддерживает. Поэтому для видеокарт AMD следует ставить OpenCL, а для NVIDIA CUDA (но может работать и с OpenCL, хоть это и бессмысленно, т.к. CUDA лучше).
Рекомендую установить эти две программы для проверки.

Поскольку Debian — это стабильный дистрибутив, в его официальных репозиториях могут отсутствовать самые свежие версии пакетов с реализациями OpenCL, HIP или CUDA, необходимых для работы нового оборудования. В этом руководстве мы сначала рассмотрим установку проверенных пакетов из официальных репозиториев — это оптимальный выбор для большинства пользователей. Однако если ваша видеокарта очень новая или стандартных пакетов из Debian недостаточно для работы OpenCL/HIP/CUDA (требуются более свежие версии), потребуется подключить официальные репозитории производителя (AMD, NVIDIA) или воспользоваться репозиторием backports, чтобы получить более свежие версии пакетов OpenCL, HIP или CUDA.

Команда для вывода списка доступных платформах и устройствах OpenCL:

text
clinfo --list

Изначально тут пусто, т.к. мы ещё ничего не установили.
Список файлов-загрузчиков OpenCL:

text
ls /etc/OpenCL/vendors/

И тут тоже пусто (либо каталога вообще не существует).

Теперь перейдём к конкретным инструкциям по установке OpenCL, HIP и CUDA в зависимости от видеокарты и от необходимых пользовательских приложений, которым нужны эти технологии. Если нет пользовательских приложений, которым нужны эти технологии, то и ставить их не нужно!

платформа AMD

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

Ключ:
text
curl -fL https://repo.radeon.com/rocm/rocm.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/rocm.gpg

Репозиторий:

text
echo -e "Types: deb\nURIs: https://repo.radeon.com/rocm/apt/debian\nSuites: noble\nComponents: main\nArchitectures: amd64\nSigned-By: /etc/apt/keyrings/rocm.gpg" | sudo tee /etc/apt/sources.list.d/rocm.sources

Повышаем приоритет репозитория, чтобы пакеты для видекарты AMD брались из него:

text
sudo tee /etc/apt/preferences.d/rocm-pin-600 << EOF
Package: *
Pin: release o=repo.radeon.com
Pin-Priority: 600
EOF

Обновляем кеш:

text
sudo aptitude update

После этого обязательно нужно добавить пользователя в группы:

text
sudo usermod -aG video,render $USER

и релогнуться

Установка HIP

Если HIP планируется использовать с Blender, то сразу можно переходить к установке HIP из репозитория ROCm.
В большинстве же случаев достаточно HIP из репозитория Debian:
text
sudo aptitude install hipcc

Проверяем, что HIP увидел нашу видеокарту:

text
rocminfo

В одном из разделов, начинающихся с ******* Agent ******* должно быть описание видеокарты.
Проверим версию HIP. Для этого нужно запустить команду:

text
hipconfig --version

В результате выведится версия. В моём случае это 5.7.31921-0
Запускаем Blender, заходим в настройки и на вкладке System переключаемся на закладку HIP. Там должна отображаться видеокарта. Если видеокарта отображается, то на этом установка HIP закончена.
В моём случае она не отображается (RX 6600), потому что HIP в репозитории Debian из ROCm версии 5.7, в Blender требует версии 6.0 или выше (требования написаны на вкладке с HIP). Поэтому мне придётся ставить HIP из репозитория ROCm.
Но сначала я удалю ненужный пакет:

text
sudo aptitude purge hipcc

а затем поставлю из репозитория AMD (предварительно подключив его, как описано выше):

text
sudo aptitude install hip-runtime-amd

Теперь видеокарта должна отобразиться.

установка ROCm полностью

Если нужна вся платформа целиком (например, для сборки утилит, использующих видеокарту типа gRASPA), то нужно сначала подключить репозиторий AMD (предварительно подключив его, как описано выше), а затем установить всю платформу:
text
sudo aptitude install rocm

Установка OpenCL

Установка возможна для трёх разных реализаций - MESA, проприетарный OpenCL из репозитория Debian и проприетарный OpenCL из репозитория ROCm. Первые два в Debian помечены как конфликтующие и теоретически должны удалять друг друга. Однако при экспериментах лучше удалять явно. Если уже установлен HIP из репозитория ROCm, то лучше сразу установить и проприетарный OpenCL из официального репозитория ROCm.
В остальных случаях подойдёт OpenCL от MESA с использованием rusticl.
Установка от MESA
text
sudo aptitude install mesa-opencl-icd

Теперь запустим команду просмотра доступных платформ, которую мы уже запускали выше:

text
clinfo --list

Вывод будет примерно таким:

text

Platform #0: Clover
 `-- Device #0: AMD Radeon RX 6600 (radeonsi, navi23, LLVM 19.1.7, DRM 3.64, 6.19.10+deb13-amd64)
Platform #1: rusticl

в выводе мы видим две платформы - устаревшая платформа Clover, которая видит нашу видеокарту.
rusticl, это более современная платформа для открытых вычислений, которая и рекомендуется для запуска ДаВинчи. Но эта платформа пока не видит нашу видеокарту. Если сейчас запустить DaVinci, без настроек, то запуск будет с помощью платформы Clover и будет ооочень медленно загружаться. Открытие существующего проекта может вообще зависнуть.
Теперь просмотрим какие файлы-загрузчики установил нам пакет mesa-opencl-icd:

text
ls /etc/OpenCL/vendors/

результатом вывода будут файлы, в том числе и:

mesa.icd
rusticl.icd

mesa.icd - это загрузчик для Clover, rusticl.icd, как несложно догадаться из названия - это загрузчик для rusticl.
Для того, чтобы запустить DaVinci через rusticl, необходимо в запуск программы добавить переменные:
RUSTICL_ENABLE=radeonsi - активирует поддержку GPU для платформы rusticl.
OCL_ICD_VENDORS=rusticl.icd заставляет загрузчик OpenCL использовать именно этот ICD-файл, игнорируя остальные
Создадим файл запуска для того, чтобы DaVinci при нажатии в меню Пуск запускался через rusticl. Для этого нужно скопировать .desktop файл ДаВинчи в локальный каталог пользователя, чтобы дальнейшие изменения(обновления) ДаВинчи его не затрагивали:

text
cp /usr/share/applications/com.blackmagicdesign.resolve.desktop ~/.local/share/applications/

Редактируем файл:

text
nano ~/.local/share/applications/com.blackmagicdesign.resolve.desktop

Находим строчку с Exec и приводим её к виду:

text
Exec=env RUSTICL_ENABLE=radeonsi OCL_ICD_VENDORS=rusticl.icd /opt/resolve/bin/resolve %F

Теперь DaVinci в меню Пуск запускается через rusticl

Установка проприетарного OpenCL из официального репозитория Debian

Устаревшая(и-за версии) реализация OpenCL. В большинстве случае нет смысла ставить, поэтому для информации.
Сначала нужно удалить конфликтующую версию MESA:
text
sudo aptitude purge mesa-opencl-icd

Затем установить реализацию OpenCL из репозитория Debian:

text
sudo aptitude install rocm-opencl-icd

После установки действуем по схеме, приведённой ранее. Смотрим доступные платформы:

text
clinfo --list

В результате должна быть одна платформа с устройством, которое она видит:

text

Platform #0: AMD Accelerated Parallel Processing
 `-- Device #0: gfx1032

Смотрим что у нас с загрузчиком OpenCL:

text
ls /etc/OpenCL/vendors/

В выводе файл amdocl64.icd, который и является единственным загрузчиком. Т.к. платформа единственная и видит видеокарту, то в этом случае дополнительные настройки не требуются.

Установка проприетарного OpenCL из официального репозитория ROCm

Развивается вместе с платформой ROCm, но из-за новизны может быть нестабильна. Перед установкой необходимо удалить предыдущие версии OpenCL от MESA и OpenCL из репозитория Debian, иначе в системе будет несколько платформ и нужно будет настраивать ярлыки для каждой программы, которая требует OpenCL для своего функционирования.
Устанавливается просто:
text
sudo aptitude install rocm-opencl-runtime

Соответственно, уже известные команды должны показать видимость платформы и файла-загрузчика OpenCL:

text
clinfo --list
text
ls /etc/OpenCL/vendors/

DaVinci тоже должен запускаться без дополнительных манипуляций.

платформа Nvidia

C Nvidia всё немного проще. В зависимости от того, какой драйвер был установлен тут, зависят дальнейшие действия.
- Если проприетарный драйвер от NVIDIA не установился (используется свободный драйвер nouveau), то вычисления на GPU недоступны.
- Если был установлен проприетарный драйвер NVIDIA nvidia-open из репозитория NVIDIA, то устанавливаем CUDA.
text
sudo aptitude install cuda-toolkit

- Если был установлен проприетарный драйвер NVIDIA из репозитория Debian, то устанавливаем CUDA и/или OpenCL.

CUDA:

text
sudo aptitude install nvidia-cuda-toolkit

OpenCL (в большинстве случаев не нужен):

text
sudo aptitude install nvidia-opencl-icd

Войдите или зарегистрируйтесь, чтобы ответить.