Mne se nikdy ROCm nepovedlo rozjet (asi proto, ze jedu na mainline kernelu a MESA z PPA). Ale bohuzel 130 GB mista na disku na takovehle pokusy nemam... Mne by bohate stacilo, kdyby s amdgpu driverem fungovalo OpenCL, ale to ma bohuzel AMD taky za neco premioveho.
nvidia funguje dobře běžně i s opencl? Třeba i starší karty?
Nedávno jsem chtěl rozjet opencl / rocm na starší AMD grafice a po 2-3 dnech komplikovaného porodu trojčat jsem to vzdal.
Mám tady starší RX580, která výkonově víc než dostačuje, nicméně už dávno pro ni odebrali podporu. Odebrali podporu v tuto chvíli znamená, že se mi zdá, že se aktivně co nejvíce snaží, aby to nefungovalo.
Takže prostě "my víme, že ta grafika bohatě stačí a funguje. Kup si novou."
Vo fedore funguje opencl na vege64 s rocm-opencl z repozitara, standardnym jadrom a standardnou mesou.
Co som nerozbehal, je hip. V blenderi mozem vybrat gpu pre cycles, ale pokus o render zhodi aplikaciu.
Oficialne je na tom vega rovnako ako polaris. Neoficialne vyvojari tvrdili, ze kod na podporu tam je, len pre ich releasy nerobia qa na nepodporovanych kartach. Prakticka skusenost je taka, ze ten kod tam moze byt, ale fungovat nemusi.
Teď jsem to zkusil v Debianu. V Blender 3.4, v nastavení u Cycles Render Devices v HIP sekci je GPU nadetekováno a rendering funguje. V Blender 4.1 (flatpak) mi píše "No compatible GPUs found for Cycles. Requires AMD GPU with Vega od RDNA architecture and MD driver version 22.10 or newer" - prozkoumám až budu mít chvilku.
Aby to fungovalo vo flatpaku, musel by v nom byt pribaleny libamdhip64.so (+ dependencies), co nie je. Podobne, pre intel tam nie je oneapi, takze tam hw akceleracia nefunguje tiez.
https://github.com/flathub/org.blender.Blender/issues/121 (amd)
https://github.com/flathub/org.blender.Blender/issues/140 (intel)
V Debianu jsem rozjel bez problémů. Od AMD stačí balíček s jejich amdgpu pro kernel. Vše ostatní je v distru. Hotovo.
PS: Tím neříkám, že s tím není potíž, pochopit co se má udělat a jak, bylo na dlouho. Ty jejich (AMD) hromady balíčků, které mají problém zapadnout do systému, protože podporují jen konkrétních málo konfigurací a konfigurují balíčkovací systém, aby se automaticky nainstalovaly, jsou problém. Měli by to změnit, jinak bude pořád NVidia považována za fakticky jedinou, u které má cenu se s tím zabývat.
OpenCL funguje v Debianu rovnou (používám i Debian backports, jestli to jede i bez backports netuším roky používám i tenhle zdroj balíčků), netřeba nic dělat. Stačí nainstalovat příslušné balíky (mesa-opencl-icd,...). Jede to přes opensource amdgpu kernelový modul. Není třeba od AMD nic instalovat, vše je v distru.
Co se týká zprovoznění ROCm, tak stačí přidat do apt sources:
deb [arch=amd64] https://repo.radeon.com/amdgpu/5.7.3/ubuntu jammy main
(případně novější verzi), nainstalovat amdgpu-dkms a doinstalovat balíčky rocm* z distra, to by mělo být vše (píšu to z hlavy). Je třeba dát pozor na to, jaká nejvyšší verze kernelu je podporována pro amdgpu modul, v backports jsou i výrazně novější, na kterých se to nezkompiluje - momentálně mám 6.1.x.
Akceleruji pomocí ROCm třeba AI easy-diffusion, pro generování obrázků. Dokonce mi to jede i na oficiálně nepodporované GPU (integrované v CPU AMD Ryzen 7 5700G), stačilo nastavit 2 environment proměnné a akceleruje.
No nevim, spis bych rekl, ze mesa aspon s Navi architekturou nefunguje: https://askubuntu.com/questions/1499498/is-opencl-completely-broken-for-amd-navi-series-cards .
Ono sice clinfo kartu detekuje, ale jakykoli pokus o kompilaci kernelu skonci po 30 s timeout chybou:
[420591.258903] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring comp_1.1.0 timeout, signaled seq=37, emitted seq=38
[420591.259968] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process nodelet pid 2126062 thread nodelet:cs0 pid 2126236
A to jedu na mainline kernelu a Mesa 24.0.2.
Mne tiež na 5500XT nefungovala opencl na grafike.
Zistil som, že bolo potrebné nainštalovať Rusticl OpenCL. Potom už nebol problém s firmwerom. Mám to na Mageie 9.
Stav opencl v mese je tu:
https://mesamatrix.net/
Škoda, že sa nepracuje na mesa cl ale na rocm cl, zo strany AMD.