ການເລັ່ງດ້ວຍ GPU
ການເປີດໃຊ້ການເລັ່ງດ້ວຍ GPU ສຳລັບຄຸນສົມບັດ AI ຂອງ darktable ແມ່ນມີສອງຂັ້ນຕອນ:
-
ຕິດຕັ້ງ ONNX Runtime ທີ່ຮອງຮັບ GPU ສຳລັບຮາດແວຂອງທ່ານ (ໜ້ານີ້).
-
ກຳນົດບ່ອນເກັບຂໍ້ມູນ (library) ໃໝ່ໃຫ້ darktable ຜ່ານ ການຕັ້ງຄ່າ AI – ຄລິກ ກວດຫາ (detect) ເພື່ອສະແກນຫາບ່ອນຕິດຕັ້ງມາດຕະຖານໂດຍອັດຕະໂນມັດ, ຫຼື ເລືອກຫາໄຟລ໌ດ້ວຍຕົນເອງ.
ໃນ Linux, runtime ທີ່ມາພ້ອມກັບໂປຣແກຣມແມ່ນໃຊ້ໄດ້ສະເພາະ CPU; ໃນ Windows, ມັນໃຊ້ DirectML; ແລະ ໃນ macOS, ມັນໃຊ້ CoreML. ດັ່ງນັ້ນ, ຂັ້ນຕອນທີ 1 ຈະໃຊ້ໄດ້ສະເພາະຖ້າທ່ານຕ້ອງການການເລັ່ງດ້ວຍ GPU ຂອງ NVIDIA, AMD ຫຼື Intel ໃນ Linux ຫຼື Windows. ຂັ້ນຕອນທີ 1 ມີສາມວິທີ ຕາມທີ່ລະບຸໄວ້ລຸ່ມນີ້.
🔗ຄວາມຕ້ອງການຂອງລະບົບ
ຕົວປະມວນຜົນທີ່ມາພ້ອມກັບ Windows (DirectML, GPU ໃດໆທີ່ຮອງຮັບ DirectX 12) ແລະ macOS (CoreML, Apple Silicon ຫຼື Intel Mac ລຸ້ນໃໝ່) ແມ່ນບໍ່ມີຄວາມຕ້ອງການເພີ່ມເຕີມ. ແຕ່ຕົວປະມວນຜົນ GPU ໃນ Linux/Windows ດ້ານລຸ່ມນີ້ຕ້ອງການຮາດແວທີ່ຮອງຮັບ ແລະ ໄລບຣາຣີຂອງລະບົບບາງຢ່າງ.
- NVIDIA (CUDA)
- GPU ລຸ້ນ Pascal ຫຼື ໃໝ່ກວ່າ (ຄວາມສາມາດໃນການປະມວນຜົນ 6.0+). NVIDIA driver ເວີຊັນ 525 ຫຼື ໃໝ່ກວ່າ. ພ້ອມທັງ ອັນໃດອັນໜຶ່ງ ລະຫວ່າງ CUDA Toolkit 12.x ຫຼື CUDA Toolkit 13.x ແລະ cuDNN 9.x ທີ່ຕິດຕັ້ງຢູ່ໃນລະບົບ. ທັງສອງເວີຊັນຂອງ CUDA ມີ ONNX Runtime ແຍກກັນ ແລະ ທ່ານຕ້ອງເລືອກອັນທີ່ກົງກັບເວີຊັນ toolkit ທີ່ຕິດຕັ້ງຢູ່ໃນເຄື່ອງຂອງທ່ານ.
-
ເພື່ອກວດສອບວ່າທ່ານມີ CUDA toolkit ເວີຊັນໃດ:
-
- ລັນ
nvcc --versionໃນເທີມິນໍ (terminal) – ແຖວreleaseຈະບອກທ່ານເຖິງຊຸດເຄື່ອງມືທີ່ຕິດຕັ້ງ (ເຊັ່ນ:release 12.6ໝາຍຄວາມວ່າຕິດຕັ້ງ CUDA 12 ແລ້ວ).
- ລັນ
nvidia-smiຈະລາຍງານຟີວCUDA Version:ຢູ່ສ່ວນເທິງ, ແຕ່ນັ້ນແມ່ນເວີຊັນ ສູງສຸດ ທີ່ໄດຣເວີສາມາດລັນໄດ້, ບໍ່ແມ່ນສິ່ງທີ່ຕິດຕັ້ງຢູ່. ເຄື່ອງທີ່ມີໄດຣເວີ 580+ ອາດຈະສະແດງCUDA Version: 13.2ໃນຂະນະທີ່ຕິດຕັ້ງພຽງແຕ່ CUDA 12 ຜ່ານnvcc.
-
ຖ້າທ່ານຕິດຕັ້ງ CUDA 12 ແລ້ວ ແລະ ຕ້ອງການປ່ຽນເປັນ 13, ໃຫ້ຕິດຕັ້ງຊຸດເຄື່ອງມື CUDA 13 (ຕິດຕັ້ງຂະໜານກັບ 12 ກໍໄດ້) ແລະ ຈາກນັ້ນກໍລັນສະຄຣິບຕິດຕັ້ງ ONNX Runtime ຄືນໃໝ່ – ມັນຈະເລືອກການສ້າງທີ່ກົງກັບຊຸດເຄື່ອງມືທີ່ມັນພົບ.
- AMD (MIGraphX) (ສະເພາະ Linux)
- GPU ທີ່ຮອງຮັບ ROCm (Radeon RX 7700-series ຫຼື ໃໝ່ກວ່າ, Instinct MI100 ຫຼື ໃໝ່ກວ່າ). ROCm 6.x ຫຼື ໃໝ່ກວ່າ ພ້ອມຕິດຕັ້ງ MIGraphX ໃນລະບົບ.
-
ໝາຍເຫດ: ການລັນ (inference) ຄັ້ງທຳອິດຂອງແຕ່ລະໂມເດວໃນ 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, ບໍ່ຕ້ອງຈັດການ source code.
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 ຫຼື 13.
ເມື່ອສະຄຣິບເຮັດວຽກສຳເລັດ, ໃຫ້ເປີດ darktable ໃໝ່, ເຂົ້າໄປທີ່ ການຕັ້ງຄ່າ AI, ແລະ ຄລິກ detect ເພື່ອໃຫ້ darktable ຮັບຮູ້ runtime ທີ່ຕິດຕັ້ງໃໝ່. ຈາກນັ້ນເລືອກຕົວປະມວນຜົນຂອງທ່ານ (CUDA, MIGraphX, OpenVINO) ພາຍໃຕ້ AI acceleration.
🔗ກວດສອບ ONNX Runtime ທີ່ຕິດຕັ້ງໃນລະບົບ
ຖ້າລະບົບຂອງທ່ານມີ ONNX Runtime ທີ່ຮອງຮັບ GPU ມາໃຫ້ແລ້ວ (ພົບເລື້ອຍໃນ Arch, ບາງຄັ້ງໃນ Ubuntu/Debian ຜ່ານຄັງເກັບຂໍ້ມູນພາກສ່ວນທີສາມ), ພຽງແຕ່ຄລິກ detect ໃນແຖບການຕັ້ງຄ່າ AI – darktable ຈະຊອກຫາໃນຕຳແໜ່ງມາດຕະຖານຂອງລະບົບ ແລະ ກຳນົດຄ່າດ້ວຍຕົນເອງ.
🔗ຕິດຕັ້ງດ້ວຍຕົນເອງ
ເມື່ອຕົວເລືອກອັດຕະໂນມັດບໍ່ເໝາະສົມ (ສະພາບແວດລ້ອມທີ່ຖືກຈຳກັດ, ການກວດສອບແບບກຳນົດເອງ, GitHub API ຖືກຈຳກັດອັດຕາການເຂົ້າເຖິງ – ເບິ່ງຂ້າງລຸ່ມນີ້) ທ່ານສາມາດໄປເອົາ ແລະ ວາງໄຟລ໌ດ້ວຍຕົນເອງໄດ້. ເປົ້າໝາຍຄືການມີ libonnxruntime.so.* / onnxruntime.dll ຢູ່ໃນດິສກ໌ ທີ່ darktable ສາມາດຊີ້ໄປຫາໄດ້ຜ່ານຟີວ ໄລບຣາຣີ ONNX Runtime ໃນການຕັ້ງຄ່າ AI.
🔗ບ່ອນດາວໂຫລດ
| ຜູ້ຜະລິດ | ແຫຼ່ງຂໍ້ມູນ |
|---|---|
| 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 |
ໄຟລ໌ບີບອັດແບບ tarball/zip ຂອງ NVIDIA ແມ່ນແຕກໄຟລ໌ອອກໄດ້ງ່າຍທີ່ສຸດ: ຫ້ອງສະໝຸດ (library) ຈະຢູ່ພາຍໃຕ້ lib/. ສ່ວນ PyPI wheels (ໄຟລ໌ .whl ແມ່ນໄຟລ໌ zip ທີ່ປ່ຽນຊື່ໃໝ່) ຈະເກັບຫ້ອງສະໝຸດໄວ້ພາຍໃຕ້ <package>/capi/ ພ້ອມກັບໄຟລ໌ LICENSE ແລະ ThirdPartyNotices.txt ເຊິ່ງທ່ານຄວນເກັບໄວ້ຄຽງຂ້າງກັນ. Wheels ຂອງ AMD ອາດຈະມີໂຟນເດີຄູ່ຂະໜານ <package>.libs/ ຂອງ ROCm libs ທີ່ມາພ້ອມກັບ auditwheel – ຖ້າມີ, ໂຟນເດີນັ້ນຕ້ອງຢູ່ຄຽງຂ້າງ libonnxruntime.so.* ຫຼັງຈາກກັອບປີ້ແລ້ວ, ເພາະວ່າ RPATH ຂອງຜູ້ໃຫ້ບໍລິການຈະອ້າງອີງຜ່ານ $ORIGIN. ສໍາລັບ Intel ໃນ Windows ແມ່ນຈຳເປັນຕ້ອງມີ DLLs ຈາກ wheel ທີສອງ (openvino) ກັອບປີ້ໄວ້ຄຽງຂ້າງ onnxruntime.dll.
ຕາມທຳນຽມ, ໃຫ້ວາງໄຟລ໌ທີ່ແຕກອອກໄວ້ພາຍໃຕ້ ~/.local/lib/onnxruntime-<ep>/ ໃນ Linux ຫຼື %LOCALAPPDATA%\onnxruntime-<ep>\ ໃນ Windows (<ep> ຄື cuda, rocm, migraphx, ຫຼື openvino). ປຸ່ມ detect ໃນການຕັ້ງຄ່າ AI ຈະສະແກນຫາໂຟນເດີ onnxruntime-* ພາຍໃຕ້ເສັ້ນທາງເຫຼົ່ານັ້ນ.
🔗AMD: ແຫຼ່ງຂໍ້ມູນທາງເລືອກເມື່ອ PyPI ບໍ່ຮອງຮັບ GPU ບາງລຸ້ນ
ໄຟລ໌ wheels ຂອງ onnxruntime-rocm / onnxruntime-migraphx ຈາກ PyPI ຈະລວມ binary ຂອງ HIP kernel ສຳລັບ GPU ບາງລຸ້ນເທົ່ານັ້ນ. ຖ້າ ID gfx* ຂອງກາດຈໍທ່ານບໍ່ໄດ້ຮັບການຮອງຮັບ, ONNX Runtime ຈະໂຫລດໄດ້ ແຕ່ການຄອມໄພລ໌ໂມເດວຈະລົ້ມເຫຼວ:
migraphx_program_compile: Error: ... no kernel image is available
for execution on the device
ບັນຫານີ້ມັກເກີດຂຶ້ນກັບ iGPU ລຸ້ນ RDNA 3 (ເຊັ່ນ Radeon 780M / gfx1103). ນີ້ຄືສອງວິທີແກ້ໄຂເບື້ອງຕົ້ນ:
-
ເຊື່ອງ GPU ທີ່ບໍ່ຮອງຮັບ ຈາກ MIGraphX ເພື່ອໃຫ້ມັນໄປໃຊ້ກາດທີ່ຮອງຮັບແທນ (ຊອກຫາລຳດັບດ້ວຍ
rocminfo | grep -E "Marketing Name|gfx"):HIP_VISIBLE_DEVICES=0 darktable -
ຂ້າມ (override) ເວີຊັນ gfx – RDNA 3 ສ່ວນໃຫຍ່ແມ່ນສາມາດເຂົ້າກັນໄດ້ໃນລະດັບ binary ກັບ gfx1100, ດັ່ງນັ້ນ kernels ທີ່ມາພ້ອມກັນມັກຈະສາມາດໃຊ້ງານໄດ້:
HSA_OVERRIDE_GFX_VERSION=11.0.0 darktable
ຖ້າທັງສອງວິທີບໍ່ໄດ້ຜົນ, ບ່ອນເກັບ ROCm ຂອງ AMD ເອງຈະມີບິວດ໌ທີ່ຮອງຮັບສະຖາປັດຕະຍະກຳທີ່ກວ້າງກວ່າ. ເຂົ້າໄປທີ່ https://repo.radeon.com/rocm/manylinux/, ຊອກຫາໂຟນເດີ rocm-rel-X.Y.Z/ ທີ່ກົງກັບເວີຊັນ ROCm ທີ່ທ່ານຕິດຕັ້ງ, ດາວໂຫລດ cp312 onnxruntime_rocm-*.whl, ແລະ ແຕກໄຟລ໌ດ້ວຍວິທີດຽວກັນກັບ PyPI wheel.
🔗ການສ້າງ AMD ຈາກ source code
ເມື່ອໄຟລ໌ binary ຈາກ AMD ຍັງບໍ່ກົງກັບລະບົບຂອງທ່ານ (ເຊັ່ນ ບິວດ໌ ROCm ເອງ), ໃຫ້ສ້າງ ONNX Runtime ໂດຍອ້າງອີງກັບ ROCm ທີ່ຕິດຕັ້ງໄວ້. ຈາກໂຟນເດີ source ຂອງ darktable:
./tools/ai/install-ort-amd-build.sh
ຕ້ອງການ cmake 3.26 ຂຶ້ນໄປ, ຕົວແປພາສາ C++ (compiler), python3, ແລະ git. ໃຊ້ເວລາປະມານ 10–20 ນາທີ.
🔗ການຈຳກັດອັດຕາການໃຊ້ GitHub API
ສຳລັບ CUDA 13, ສະຄຣິບຕິດຕັ້ງຈະສອບຖາມ api.github.com ວ່າເວີຊັນໃດໃໝ່ສຸດ. GitHub ຈຳກັດຜູ້ໃຊ້ທີ່ບໍ່ໄດ້ເຂົ້າລະບົບໄວ້ທີ່ 60 ຄັ້ງຕໍ່ຊົ່ວໂມງຕໍ່ໜຶ່ງ IP. ໃນລະບົບເຄືອຂ່າຍທີ່ໃຊ້ IP ຮ່ວມກັນ (ເຄືອຂ່າຍອົງກອນ, VPN) ຂີດຈຳກັດນີ້ອາດຈະໝົດໄວ ແລະ ສະຄຣິບຈະລົ້ມເຫຼວພ້ອມແຈ້ງເຕືອນບັນຫານີ້.
ສອງວິທີແກ້ໄຂ:
-
ຕັ້ງຄ່າ
GITHUB_TOKENໃຫ້ເປັນ personal access token ໃດໜຶ່ງ (ບໍ່ຈຳເປັນຕ້ອງມີ scope ສໍາລັບ public repos) ກ່ອນທີ່ຈະລັນໃໝ່ – ເພື່ອເພີ່ມຂີດຈຳກັດເປັນ 5000 requests/ຊົ່ວໂມງ ສໍາລັບການຢືນຢັນຕົວຕົນ. -
ຕິດຕັ້ງດ້ວຍຕົນເອງ – ສໍາລັບ CUDA 13 tarball ແມ່ນໃຊ້ຄຳສັ່ງ
tar xzfແລ້ວກັອບປີ້. ສະຄຣິບຕິດຕັ້ງຈະສະແດງຄຳແນະນຳດຽວກັນນີ້ຫາກເກີດຂໍ້ຜິດພາດ.
ແຫຼ່ງຂໍ້ມູນຈາກ PyPI (AMD, Intel, NVIDIA CUDA 12) ແມ່ນບໍ່ມີການຈຳກັດອັດຕາການໃຊ້ ແລະ ບໍ່ໄດ້ຮັບຜົນກະທົບ.
🔗ຫຼັງຈາກຕິດຕັ້ງ ONNX Runtime ໃໝ່
ເມື່ອ darktable ເລີ່ມຕົ້ນດ້ວຍໄລບຣາຣີ ONNX Runtime ໃໝ່, ລາຍການເລືອກ AI acceleration ໃນການຕັ້ງຄ່າ AI ຈະຖືກອັບເດດສະເພາະຕົວປະມວນຜົນທີ່ໄລບຣາຣີນັ້ນຮອງຮັບແທ້ໆ. ການເລືອກເກົ່າທີ່ບໍ່ຮອງຮັບອີກຕໍ່ໄປຈະຖືກປ່ຽນໄປໃຊ້ GPU ອື່ນທີ່ມີໃຫ້ໂດຍອັດຕະໂນມັດ, ຫຼື ປ່ຽນເປັນ auto ຖ້າບໍ່ມີ GPU ເຫຼືອຢູ່.
ໃນລະຫວ່າງການຕິດຕັ້ງແລະການເລີ່ມຕົ້ນໃໝ່, ລາຍການເລືອກ (dropdown) ຈະສະແດງຂໍ້ຄວາມ restart to apply ຢູ່ຂ້າງຊື່ຜູ້ໃຫ້ບໍລິການ – ເພື່ອເຕືອນວ່າ runtime ທີ່ໂຫລດຢູ່ໃນປັດຈຸບັນນັ້ນເກົ່າແລ້ວ.