Прискорення GPU
Увімкнення прискорення GPU для ШІ-функцій Darktable складається з двох кроків:
-
Встановіть ONNX Runtime із підтримкою GPU для вашого обладнання (ця сторінка).
-
Вкажіть Darktable на нову бібліотеку через Налаштування ШІ – натисніть Визначити для автоматичного сканування стандартних місць встановлення або знайдіть файл вручну.
У Linux середовище виконання, що постачається з Darktable, працює лише на CPU; у Windows воно використовує DirectML; а в macOS — CoreML. Тому крок 1 застосовується лише в тому випадку, якщо вам потрібне прискорення GPU NVIDIA, AMD або Intel у Linux або Windows. Крок 1 має три шляхи, описані нижче.
🔗Вимоги
Постачальники, що входять до комплекту, у Windows (DirectML, будь-який графічний процесор DirectX 12) та macOS (CoreML, Apple Silicon або новіший Intel Mac) не мають додаткових вимог. Постачальники для Linux/Windows, наведені нижче, потребують підтримуваного обладнання та кількох системних бібліотек.
- NVIDIA (CUDA)
- GPU на мікроархітектурі Pascal або новішої версії (обчислювальні можливості 6.0+). Драйвер NVIDIA 525 або пізнішої версії. Плюс один з CUDA Toolkit 12.x або CUDA Toolkit 13.x та cuDNN 9.x, встановлений в системі. Дві гілки CUDA мають окремі збірки ONNX Runtime, і вам потрібна та, яка відповідає версії інструментарію, встановленому на вашому комп’ютері.
- **: Щоб перевірити, який у вас інструментарій CUDA:
-
- запустіть
nvcc --versionу терміналі – рядокreleaseповідомляє вам про встановлений інструментарій (наприклад,release 12.6означає, що CUDA 12 встановлено).
- запустіть
nvidia-smiповідомляє полеCUDA Version:у верхній частині, але це максимальна версія, яку драйвер може запустити, а не та, що встановлена. Машина з драйвером 580+ може показуватиCUDA Version: 13.2, тоді як насправді черезnvccвстановлено лише CUDA 12.
-
Якщо у вас встановлено CUDA 12 і ви хочете перейти на 13, встановіть інструментарій CUDA 13 (паралельно з 12 цілком нормально), а потім повторно запустіть скрипт встановлення ONNX Runtime – він вибере збірку, що відповідає знайденому інструментарію.
- AMD (MIGraphX) (лише для Linux)
- GPU з підтримкою ROCm (серія Radeon RX 7700 або новіша, Instinct MI100 або новіша). ROCm 6.x або новіша з встановленим MIGraphX у системі.
-
Примітка: перший інференс кожної моделі на MIGraphX займає кілька хвилин, оскільки граф моделі компілюється для вашого конкретного GPU, а потім кешується на диску – див. Нотатки щодо продуктивності для отримання детальної інформації. Після кешування наступні запуски виконуються швидко та витримують перезапуски Darktable.
- Intel (OpenVINO)
- Intel iGPU (HD / UHD / Iris Xe) або дискретний GPU Arc. Драйвер GPU Intel з OpenCL (
intel-opencl-icd) та/або Level Zero. OpenVINO постачається в інсталяційному пакеті – нічого додатково встановлювати не потрібно.
Якщо потрібна системна бібліотека відсутня, скрипт встановлення повідомить вам, яка саме, та направить вас до документації з встановлення. Пакет все одно встановлюється; прискорення починається лише після встановлення відсутньої бібліотеки.
🔗Використання скриптів встановлення (рекомендовано)
Найпростіший шлях: вставити один рядок у термінал. Скрипт визначає, який у вас GPU, завантажує відповідну збірку ONNX Runtime, перевіряє її та встановлює під вашим обліковим записом користувача. Права root не потрібні.
Linux:
curl -fsSL https://raw.githubusercontent.com/darktable-org/darktable/HEAD/tools/ai/install-ort-gpu.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/darktable-org/darktable/HEAD/tools/ai/install-ort-gpu.ps1 | iex
Для скрипта Linux потрібні bash, curl, jq, tar та unzip, доступні в PATH – якщо якісь відсутні, система одразу повідомляє про них, щоб встановлення не завершилося невдало. Для скрипта Windows потрібна PowerShell 5.1 або новіша версія (попередньо встановлена на Windows 10+).
Якщо у вас більше одного GPU, скрипт запитує, який з них вибрати. Якщо вашому GPU потрібні системні бібліотеки, які не встановлені (cuDNN на NVIDIA, MIGraphX на AMD), скрипт повідомляє вам, чого бракує та де це отримати – встановлення все одно завершується, але прискорення починається лише після встановлення цих системних бібліотек.
Щоб примусово використовувати певного постачальника виконання замість автоматичного визначення скриптом, передайте --ep (bash) або -Ep (PowerShell). Значення: cuda12, cuda13, rocm, migraphx, openvino. Це корисно, коли присутні відеокарти NVIDIA та Intel, і вам потрібна певна з них, або коли nvcc не встановлено, і скрипт не може визначити, чи у вас в системі CUDA 12, чи CUDA 13.
Коли скрипт завершиться, перезапустіть Darktable, відкрийте Налаштування ШІ та натисніть Визначити, щоб Darktable завантажив щойно встановлене середовище виконання. Потім виберіть свого провайдера (CUDA, MIGraphX, OpenVINO) у розділі Прискорення ШІ.
🔗Виявлення встановленого в системі ONNX Runtime
Якщо ваш дистрибутив вже постачає ONNX Runtime з підтримкою GPU (поширено в Arch, іноді в Ubuntu/Debian через сторонні репозиторії), просто натисніть Визначити на вкладці налаштувань ШІ – Darktable шукає у стандартних системних розташуваннях та налаштовується самостійно.
🔗Встановлення вручну
Коли автоматичні опції не підходять (заблоковане середовище, спеціальний аудит, обмеження швидкості GitHub API – див. нижче), ви можете самостійно отримати та розмістити файли. Метою є створення libonnxruntime.so.* / onnxruntime.dll на диску, на який Darktable можна вказати через поле Бібліотека ONNX Runtime у налаштуваннях ШІ.
🔗Звідки завантажити
| Вендор | Джерело |
|---|---|
| NVIDIA CUDA 12 | GitHub Releases – onnxruntime-{linux|win}-x64-gpu-X.Y.Z.{tgz|zip} |
| NVIDIA CUDA 13 | GitHub Releases – onnxruntime-{linux|win}-x64-gpu_cuda13-X.Y.Z.{tgz|zip} |
| AMD ROCm 6.x | PyPI onnxruntime-rocm – cp312 manylinux wheel |
| AMD ROCm 7.x | PyPI onnxruntime-migraphx – cp312 manylinux wheel |
| Intel OpenVINO (Linux) | PyPI onnxruntime-openvino – cp312 manylinux_2_28_x86_64 wheel |
| Intel OpenVINO (Windows) | PyPI onnxruntime-openvino + PyPI openvino – cp312 і win_amd64 |
Найпростіше розпакувати tar-архіви/zip-архіви NVIDIA: бібліотека знаходиться в lib/. Файли .whl PyPI (це перейменовані zip-архіви) містять бібліотеку в <package>/capi/ разом із LICENSE та ThirdPartyNotices.txt, які слід зберігати поруч. Файли .whl AMD можуть також постачати каталог <package>.libs/ з бібліотеками ROCm, що входять до auditwheel – якщо він є, цей каталог має залишатися поруч із libonnxruntime.so.* після копіювання, оскільки RPATH постачальників розв’язується через відносне посилання $ORIGIN. Intel у Windows потребує DLL-файлів з другого .whl (openvino), скопійованих поруч з onnxruntime.dll.
За домовленістю, розмістіть витягнуті файли в ~/.local/lib/onnxruntime-<ep>/ в Linux або %LOCALAPPDATA%\onnxruntime-<ep>\ у Windows (<ep> = cuda, rocm, migraphx або openvino). Кнопка Визначити в налаштуваннях ШІ сканує будь-який каталог onnxruntime-* у цих кореневих каталогах.
🔗AMD: альтернативне джерело, коли покриття графічних процесорів у PyPI недостатнє
Файли .whl onnxruntime-rocm / onnxruntime-migraphx у PyPI постачають бінарні файли HIP-ядра для фіксованого набору архітектур GPU. Якщо ідентифікатор вашої карти gfx* не охоплюється, ONNX Runtime завантажується, але компіляція моделі не вдається під час виконання:
migraphx_program_compile: Error: ... no kernel image is available
for execution on the device
Зазвичай це стосується деяких вбудованих графічних процесорів RDNA 3 (наприклад, Radeon 780M / gfx1103). Два дешевших способи вирішення проблеми перед перевстановленням:
-
приховати непідтримуваний GPU від MIGraphX, щоб MIGraphX прив’язувався до підтримуваної карти (знайдіть індекси за допомогою
rocminfo | grep -E "Marketing Name|gfx"):HIP_VISIBLE_DEVICES=0 darktable -
перевизначення версії gfx – RDNA 3 здебільшого бінарно сумісний з gfx1100, тому ядра, що постачаються в комплекті, часто працюють:
HSA_OVERRIDE_GFX_VERSION=11.0.0 darktable
Якщо ніщо не допомагає, власний репозиторій AMD ROCm постачає збірки з ширшим охопленням для кожної архітектури. Перегляньте https://repo.radeon.com/rocm/manylinux/, знайдіть каталог rocm-rel-X.Y.Z/, що відповідає встановленій версії ROCm, завантажте cp312 onnxruntime_rocm-*.whl та розпакуйте його так само, як і wheel-пакет PyPI.
🔗Збірка AMD з джерельного коду
Коли навіть бінарні файли репозиторію AMD не відповідають вашій системі (спеціально зібраний ROCm, незвичайний дистрибутив), зберіть ONNX Runtime на основі встановленого ROCm. З каталогу джерельного коду Darktable запустіть:
./tools/ai/install-ort-amd-build.sh
Потрібен cmake 3.26+, компілятор C++, python3 та git. Займає 10–20 хвилин.
🔗Обмеження частоти запитів API GitHub
Для CUDA 13 скрипт встановлення запитує api.github.com, яка версія найновіша. GitHub обмежує кількість запитів від неавторизованих відвідувачів до 60 запитів на годину на кожну джерельну IP-адресу. У спільних NAT (корпоративні мережі, VPN, хмарні віртуальні машини) це обмеження може швидко вичерпатися іншими користувачами на тій самій IP-адресі, і скрипт завершує роботу з чітким повідомленням, що вказує на цю адресу.
Два виходи:
-
Встановіть
GITHUB_TOKENна будь-який персональний токен доступу (для публічних репозиторіїв області видимості не потрібні) перед повторним запуском – збільшує ліміт до 5000 запитів на годину з автентифікацією. -
Встановіть вручну – для tar-архіву CUDA 13 це
tar xzfплюс копія. Скрипт встановлення виводить ті самі інструкції у разі невдачі.
Джерела PyPI (AMD, Intel, NVIDIA CUDA 12) не мають опублікованого обмеження швидкості і на них це не впливає.
🔗Після встановлення нового ONNX Runtime
Коли Darktable запускається з новою бібліотекою ONNX Runtime, випадаючий список Прискорення ШІ у налаштуваннях ШІ повторно заповнюється лише тими постачальниками, яких бібліотека фактично рекламує як підтримувані. Старіші вибрані варіанти, які більше не підтримуються, автоматично перемикаються на іншого доступного постачальника GPU або на Авто, якщо GPU не залишилося.
Між встановленням та перезапуском у випадаючому списку поруч із назвою постачальника відображається підказка потрібен перезапуск – нагадування про те, що поточне завантажене середовище виконання застаріло.