Akcelerace GPU v programu PixInsight: nastavení CUDA a reálné testy výkonu
Tento článek vychází z poznámek z let 2021 až 2024; některé nástroje, verze CUDA i postup nastavení se od té doby změnily (zejména pozdější verze PixInsight už podporují nastavení jedním kliknutím), takže při čtení berte v úvahu časový kontext.
Od té doby, co do pracovního postupu v programu PixInsight postupně vstoupily neuronové procesy jako odstranění hvězd, AI odšumování a AI zostření, se otázka „vyplatí se do počítače na zpracování přidat grafickou kartu?“ stala velmi praktickou. V tomto článku shrnuji své zkušenosti z posledních let s testováním a nastavením akcelerace GPU: proč GPU používat, jak ji zapnout, kolik času to ušetří a v čem se jednotlivé platformy liší.
Proč je akcelerace GPU potřeba
Procesy, které v programu PixInsight dnes podporují akceleraci GPU, jsou hlavně ty, které jsou náročné na výpočty neuronových sítí: StarNet++, StarNet 2, StarXTerminator (SXT), NoiseXTerminator (NXT), BlurXTerminator (BXT). Pokud tyto procesy běží jen na CPU, zejména u větších snímků, čekání se stává velmi citelným.
Velmi názorným příkladem je dávkové odstranění hvězd: při zpracování komet novou metodou je potřeba v lineárním stavu odstranit hvězdy z každého ještě nesloženého snímku komety zvlášť. Například u více než 200 snímků s 9 megapixely, s akcelerací na RTX 3060 Laptop, trvá jeden snímek zhruba 20 s; při spoléhání se jen na CPU vás celkový čas přiměje pochybovat o vlastních životních rozhodnutích.
Jakmile jednou vyzkoušíte akceleraci GPU, už se asi nebudete chtít vrátit zpátky.
Jak jsem poprvé úspěšně zapnul CUDA
Koncem roku 2021 jsem po několika hodinách testování různých verzí NVIDIA CUDA, cuDNN a TensorFlow konečně dokázal zapojit GPU (NVIDIA RTX 3060) do odstraňování hvězd:
- StarXTerminator jen asi 15 s;
- StarNet++ necelých 10 s;
a to stačilo na dokončení odstranění hvězd z jednoho snímku. Ve srovnání s čistým CPU byl rozdíl velmi výrazný.

Jak ji zapnout: od ručního nastavení po instalaci jedním kliknutím
Dřívější postup: ruční umístění souborů
V raných dobách bylo pro zapnutí akcelerace GPU potřeba stáhnout si odpovídající verze souborů CUDA, cuDNN, TensorFlow a podobně a umístit je na správná místa. Vstupní práh tohoto postupu nebyl nízký a navíc platil jen pro uživatele Windows, kteří mají v počítači nainstalovaný PixInsight a grafickou kartu NVIDIA s jádry CUDA. Uživatelé grafických karet AMD (včetně integrované grafiky) mohou tuto část klidně přeskočit, uživatelé Linuxu si musí najít vlastní obdobný postup. Po dokončení nastavení se výrazně zrychlí běh StarNet, StarNet++, SXT, NXT a BXT.
Nepříjemné bylo, že při každé aktualizaci programu PixInsight bylo často potřeba tyto soubory umístit znovu, což se snadno zapomínalo.
Současný postup: vestavěné nastavení PI jedním kliknutím
Na začátku roku 2024 se situace výrazně zlepšila – teď stačí do programu PixInsight přidat repozitář aktualizací (repository) a akceleraci GPU lze rovnou používat bez dalšího instalování a nastavování. Jde o postup, který na fóru PixInsight nabídl RC (Russell Croman), autor série XTerminator. V té době tato funkce fungovala jen ve Windows, verze pro Linux se ještě vyvíjela; operační systém Mac takové nastavení odjakživa nepotřeboval.
Jak ověřit, že GPU opravdu počítá
Pokud chcete zjistit, zda GPU při odstraňování hvězd nebo odšumování skutečně pracuje, ve Windows 10/11 postupujte takto: otevřete Správce úloh, přepněte na kartu „GPU“ a zvolte podkartu „CUDA“; pokud u jader CUDA vidíte nějaké vytížení, znamená to, že se GPU používá (například při spuštění SXT můžete vidět, jak vytížení jader CUDA vyskočí na 87 %); pokud jádra CUDA nevykazují vůbec žádnou aktivitu, znamená to, že se GPU nevyužívá.

Reálné testy výkonu
Vysoce výkonný CPU vs. GPU nižší/střední třídy
Hodně lidí se ptá: když je CPU dost výkonný, je grafická karta vůbec potřeba? Porovnal jsem spotřebitelský vysoce výkonný CPU (AMD R9-7950X) proti spotřebitelské grafické kartě nižší/střední třídy (RTX 3060 12G), software PI 1.8.9-1, SXT 2.05 AI 11 lite:
- První sada snímků M1 (14,75 Mpx): odstranění hvězd na CPU 1 min 45 s; na GPU 10,2 s.
- Druhá sada snímků Webb NGC 3372 (123 Mpx): odstranění hvězd na CPU 12 min 31 s; na GPU 1 min 05 s.
Z toho jsou vidět dvě pravidelnosti: čím větší snímek, tím výraznější je efekt akcelerace GPU; a i při srovnání vysoce výkonného CPU s GPU nižší/střední třídy potřebuje CPU na stejnou práci minimálně desetkrát více času než GPU. Pokud váš CPU není špičkový model, bude rozdíl jen větší. Proto, pokud ve vašem pracovním postupu opakovaně používáte procesy s AI, velmi doporučuji pořídit si alespoň grafickou kartu nižší/střední třídy řady RTX 30.

Pouhá aktualizace softwaru CUDA zrychlí zpracování téměř dvakrát
Je tu ještě jedno překvapivé zjištění. Asi před rokem a něco jsem poprvé zapnul akceleraci CUDA na notebooku s RTX 3060 Laptop; o něco více než rok později, aniž bych vyměnil jakýkoli výpočetní hardware (notebook stejně vyměnit nešel), jsem pouze aktualizoval příslušný software a se stejnými snímky provedl nové měření – rychlost se přitom zvýšila téměř na dvojnásobek.
Na příkladu odstranění hvězd ze snímku o 120 megapixelech (PI 1.8.9-1, SXT 2.05 AI 11 lite, RTX 3060 Laptop 6GB):
- Konfigurace CUDA 1 (CUDA 11.2.2, TensorFlow 2.6, cuDNN 8.2.1): asi 2,5 min.
- Konfigurace CUDA 2 (CUDA 11.8, TensorFlow 2.9, cuDNN 8.7, ZLib DLL x64 1.2.3): jen 1 min 20 s.
Pokud jste tedy CUDA nainstalovali dřív a od té doby ji už neaktualizovali, nezapomeňte software CUDA aktualizovat – můžete se řídit výše uvedenou kombinací „konfigurace 2“, což je jako byste zdarma získali polovinu výkonu navíc.

Desktopová vs. notebooková grafická karta
Zrovna mám k dispozici dvě karty – RTX 3060 12G a RTX 3060 Laptop 6G. Doba odstranění hvězd při stejné verzi softwaru:
- RTX 3060 12G: 1 min 4 s;
- RTX 3060 Laptop 6G: 1 min 20 s.
Obě mají stejný čip, rozdíl je jen v kapacitě paměti a v návrhu spotřeby desktopové/notebookové verze, takže doba odstranění hvězd se liší jen málo. Z hlediska poměru cena/výkon je herní notebook s grafickou kartou NVIDIA (tehdy za cenu kolem 30 000 NT$) poměrně výhodnou volbou.

I stará těžařská karta udělá rozdíl
Doma mám starý počítač sestavený asi před čtyřmi lety (AMD R5-3600), jehož původní grafická karta (R9-270) se blížila konci životnosti. Na internetu jsem sehnal těžařskou kartu za necelých 3000 NT$ – NVIDIA GTX 1660s – a otestoval na ní odstranění hvězd ze snímku v plném formátu (asi 60 megapixelů):
- čistě CPU: 5 min 40 s;
- GPU: 51 s;
Rozdíl v čase je asi 6,6násobný. I když má 1660s jen něco přes 1400 jader CUDA, ušetřený čas je stále velmi výrazný. Pokud budete opakovaně provádět takové operace, jako je odstranění hvězd, AI odšumování a AI zostření, je akcelerace GPU velmi hodnotnou investicí.

Rozdíly mezi platformami
Podpora toho, zda mohou procesy AI využívat akceleraci GPU, se liší podle operačního systému i hardwaru. Shrnul jsem situaci na třech platformách – Windows, Mac a Linux (část výsledků testů na Macu poskytl jeden z kolegů z oboru):
- Windows + NVIDIA: stačí to nastavit a lze zavolat CUDA pro akceleraci GPU u SXT, BXT, NXT i StarNet – u všech.
- Mac s Apple Silicon (např. M1 / M1 Ultra): BXT a NXT bez jakéhokoli nastavení automaticky zavolají Metal a využijí akceleraci GPU; SXT při běhu zabere jen část zdrojů CPU a GPU nevyužije; u StarNet 2 je nutné přejít na experimentální verzi z oficiálního webu (dostupná jen v režimu příkazového řádku CLI), aby se akcelerace GPU dala úspěšně použít.
- Mac s procesorem Intel: StarNet umí použít jen CPU; SXT, BXT a NXT naopak mohou využívat akceleraci GPU, a to i s GPU od AMD.
Na platformě Apple Silicon mají procesy jako SXT nativní podporu akcelerace GPU, takže jejich výkon je zhruba srovnatelný s „Windows + akcelerace CUDA od NVIDIA“. Pokud jde o systém Linux na PC, i tam lze zavolat GPU k akceleraci výpočtů.

Shrnutí
Když se ohlédnu za změnami posledních let: akcelerace GPU prošla cestou od hardcorového nastavování, kdy „bylo potřeba věnovat hodiny hledání správné verze CUDA“, až po stav, kdy „to PI vyřeší vestavěně jedním kliknutím“; procesů, které lze akcelerovat, přibývá a i stará těžařská karta za pár stovek NT$ dokáže přinést několikanásobné zrychlení. Pokud váš pracovní postup silně závisí na procesech s AI, je grafická karta NVIDIA nižší/střední třídy (nebo Mac s Apple Silicon) téměř nezbytností.