Asynchronní shadery: velká výhoda AMD pro DirectX 12
V celkovém srovnání se ukázalo, že karty od AMD vykazují pozoruhodně vyšší nárůst výkonu pod DirectX 12 než karty NVIDIA, v jejichž případě to bylo jako sázka do loterie. Kartám AMD tak pomohla Asynchronous Compute, součást architektury GCN, kterou hojně využívá také API Mantle nebo Vulkan, moderní nástupce OpenGL. Ta umožňuje, aby byly jednotlivé shadery využívány asynchronně, a díky tomu efektivněji bez zbytečných prostojů, kvůli nimž GPU nedokáže nabídnout svůj plný potenciál.
Jeden by si myslel, je už v DirectX 11 je zahrnuta řádná podpora vícevláknového zpracování výpočetních úkolů, ovšem pravdou je, že multithreading je v tomto API v omezené podobě a nedokáže plně využít tisícovky shaderů v moderních GPU, které tak nemohly plně zužitkovat své zdroje. Ty tak často na něco čekají, neboť jednotky starající se o přidělování úkolů je nemohou efektivně využít (v případě GCN jde o Graphics Command Processor a jemu podřízené jednotky ACE).
Jistým řešením byla prioritizace důležitých úkolů, které dostaly před jinými přednost, což se označuje jako Graphics Pre-emption. Tím se ale nevyřešil hlavní problém s tím, že stále nebylo možné zpracovávat více úkolů nezávisle na sobě, čili ty méně důležité úkoly stále musely na něco čekat. Navíc to znamená práci navíc právě s určením priority různých úkolů, což ve výsledku mohlo výkon i zhoršit.
V DX12, Vulkan a Mantle se tak staly řešením asynchronní shadery, které mají zajistit opravdové vícevláknové zpracování úkolů nezávisle na sobě, aby každý shader mohl poskytnout svůj plný potenciál, přičemž možnost prioritizace zůstala zachována. Daný grafický procesor, respektive jeho architektura, ale musí takovou funkci podporovat. GCN využívá Asynchronous Compute Engines (výše zmíněné ACE), které můžeme přiblížit jako víceproudou komunikaci dodávající úkoly jednotlivým Stream procesorům, jak AMD nazývá shadery. Nejlepší GPU od AMD mají celkem osm těchto ACE, z nichž každé může spravovat až osm front příkazů.
Jejich práci přibližuje následující video od AMD:
Společnost AMD také již sama demonstrovala výhodu asynchronních shaderů, a to před řadou měsíců na demu Liquid VR. To nejdříve běželo bez nich i bez postprocessingu při 245 FPS. S postprocessingem se snímková frekvence snížila na 158 FPS, a to stále bez asynchronních shaderů, které po zapnutí zvýšily FPS na 230. Asynchronní shadery také dokáže využít pod Mantle také hra Thief nebo Battlefield 4, kde se jejich přínos tedy již projevil v praxi. Jenomže Mantle je pro běžné uživatele již mrtvé, a tak je třeba počkat na to, až se začnou objevovat tituly pro DX12.
Asynchronní shadery jsou tedy potenciálně velkou výhodou architektury GCN, kterou dnešní GPU NVIDIA s architekturou Maxwell nemají. Grafické čipy generace Pascal by ale už měly být připraveny, čili pak bude rozhodujícímu se zákazníkovi záležet především na tom, zda bude k dispozici dříve nová karta od NVIDIE, nebo kýžená hra pro DirectX 12, v níž by karty AMD mohly být daleko výkonnější než konkurenční Maxwell. Řada her pro DX12 se přitom chystá už pro konec tohoto roku, zatímco Pascalu se dočkáme až někdy v tom příštím.
Zástupce AMD Robert Hallock se k tomuto tématu již stačil vyjádřit v tom smyslu, že jeho firma počítala s takovým využitím své architektury již od začátku a připomněl, že slovy prostých čísel má GCN větší výkon (FLOPS/mm2) než kterákoliv jiná architektura. Zástupce firmy NVIDIA Brian Burke v reakci na požadavek o komentář pouze řekl, že je nadšen z velkého počtu chystaných titulů pro DX12 a že jeho firma má důveru ve svůj hardware i ovladače.
Zdroj: wccftech