[AI] GPU ORT install: manifest-driven UI button, scripts, and EP support#20676
[AI] GPU ORT install: manifest-driven UI button, scripts, and EP support#20676andriiryzhkov wants to merge 13 commits intodarktable-org:masterfrom
Conversation
2fc7d22 to
bf749a7
Compare
|
@TurboGit : I need help testing this scripts and UI installer. Can you test it with NVIDIA card on Linux? And maybe you can advise who can help with other tests? |
|
@andriiryzhkov : Just to be sure, you mean install-ort-gpu.sh, right? I'll try to do that tomorrow. |
|
|
|
@andriiryzhkov : Using the script was ok. I was also able to install with the in UI [install] button. I saw a difference, when using the script I had not softlink created whereas with the in UI installation I got: |
|
@TurboGit : Thank you for testing. The symlinks are created by the UI install for extra safety, but not strictly required — darktable loads the library by full path from the preferences config, not via Looks like NVIDIA and AMD are tested. |
No not needed, just wanted to be sure this was expected and not the a cause of another issue. |
3d4266e to
4544aee
Compare
|
Fixed cuDNN detection in UI installation on Ubuntu and Debian |
131c743 to
7e38626
Compare
7810328 to
64815e6
Compare
|
Some feedback after I tried to install the ONNX runtime for ROCm 7.2, / MIGraphX: Now this is what I get when I start darktable with ai debug msgs enabled and click on the restore module: It just gets stuck with I also attached the output of I assigned 10 GB of pageable RAM to the iGPU, which should be sufficient, shouldn't it? It is certainly not hitting any memory bottleneck as per the Maybe this is just a very specific AMD / iGPU issue, as my laptop is running on a AMD Ryzen 7 8845HS with an Radeon 780M iGPU. |
|
@da-phil :
You are not stuck, let it finish compilation. It may take long, veeerrrryyyyy long. But it's only one time per model and per tile size. I tested on my Radeon 780M iGPU and it took 30 minutes. The compilation is cached on disk. The following runs with the same tile size where very fast - just like 10 seconds or so. Much faster than CPU. iGPUs generally are not supported by ROCm and they don't have pre-build kernels. That's why I think it takes so long. But compilation is a thing even for proper supported GPUs. |
Okay, this time I was patient enough and voila, it worked! On CPU: On GPU: But now the problem: the GPU path leads to significant vertical stripe artifacts:
Is this a known issue or is there anything I can do to debug it? The CPU path leads to artifact-free denoised images. |
That is interesting. I will check, but assume it would be hard to trace |

Follow-up to #20647 (ORT library path preference and custom loading). Addresses #20532.
Summary
Manifest-driven system for installing GPU-accelerated ONNX Runtime directly from darktable or via scripts.
Package manifest (
data/ort_gpu.json)All download URLs, SHA-256 checksums, archive formats, and ROCm version mappings in a single JSON file – update it to change URLs/versions without rebuilding darktable. Supports NVIDIA (CUDA), AMD (MIGraphX), and Intel (OpenVINO) on Linux and Windows.
Install button in AI preferences (
preferences_ai.c)HAVE_AI_DOWNLOAD(requires curl + libarchive)Backend (
ort_install.c/h)dt_ai_ort_probe_libraryUnified install scripts
install-ort-gpu.shinstall-ort-gpu.ps1install-ort-amd-build.shScripts read the same
ort_gpu.jsonmanifest, detect GPU, download and verify the matching package. Support--vendor,--force,--manifestflags.EP availability expanded (
backend_common.c)CUDA and OpenVINO now selectable on Windows (previously Linux-only).
Documentation
tools/ai/README.md– install methods, EP table, manifest format, manual install, verification.Test plan