Recenze Grafiky a hry

DirectX 12 Multi-engine: asynchronní shadery v praxi | Kapitola 9

Pavel Šantrůček

Pavel Šantrůček

17

Seznam kapitol

1. DirectX 12 Multi-engine: asynchronní shadery v praxi 2. Co jsou to Compute shadery 3. DirectX 11 4. DirectX 12: Multi-engine 5. Simultánní Multi-threading 6. Multi-engine - implementace AMD a Nvidia
7. MDolenc test: AMD 8. MDolenc test: Nvidia 9. MDolenc test: Nvidia (CUDA) 10. Ashes of the Singularity (v 0.49) 11. Ashes of the Singularity (v 0.60) 12. Závěr

Co jsou to asynchronní shadery a k čemu vlastně slouží? Jak zapadají do kontextu DirectX 12? Které grafické karty je podporují, které zase ne a proč? V dnešním článku odpovíme právě na takovéto otázky.

Reklama

MDolenc test: Nvidia (CUDA)


Pokud místo DirectX 12 verze MDolenc testu použijeme verzi pro CUDA, začínají se dít zajímavé věci.

Průchod 1 – exekuce pouze výpočetních úloh

DirectX 12 Multi-engine: asynchronní shadery v praxi

- pro zvětšení klikněte na obrázek -

V tomto průchodu jsou zpracovávány pouze výpočetní úlohy a na rozdíl od DirectX 12, Device Context (temně zelená) nyní odesílá příkazy do té správné výpočetní fronty (

Compute

).


Průchod 2 – souběžné exekuce grafických i výpočetních úloh

DirectX 12 Multi-engine: asynchronní shadery v praxi

- pro zvětšení klikněte na obrázek -

V tomto průchodu jsou zpracovávány jak úlohy výpočetní, tak také grafické. Device Context (temně zelená) odesílá výpočetní příkazy opět správně do fronty výpočetní (

Compute

) a souběžně také Device Context (tmavě zelená) odesílá grafické příkazy do fronty grafické (

3D

). Vidíme tedy využití obou front, jak 3D pro grafické úlohy, tak také fronty Compute pro úlohy výpočetní.

Pod CUDA jsou tedy využity zároveň obě fronty, kde o grafickou (3D) se na GPU stará engine

GCP

a o výpočetní pak s největší pravděpodobností onen výpočetní engine

GMU

(Grid Management Unit).

Nyní, když jsou grafickou kartou pod CUDA využity obě hardwareové fronty, jak tedy vlastně MDolenc test pro Nvidia CUDA vůbec dopadl?

DirectX 12 Multi-engine: asynchronní shadery v praxi

Neslavně! Ani přes využití

CUDA

a její samostatnou jednotku

GMU

jsme se nedočkali souběžného zpracování grafických a výpočetních úloh. I přes existenci dvou enginů, kdy se o grafické příkazy stará

GCP

a o výpočetní pak

CUDA GMU

, Maxwell není schopen zprovoznit úlohy tak, aby pracovaly souběžně. S největší pravděpodobností totiž není splněna ona druhá podmínka asynchronních shaderů, tedy správné řazení (sheduling) úloh do práce simultánního multi-threadingu.

Tak to bychom měli za sebou testy syntetické, které byly pro nás důležité zejména pro zjištění, co a jak které grafické karty podporují či nepodporují a popravdě pro grafické karty architektury Kepler/Maxwell nedopadly příliš optimisticky. Všem dnům ale ještě konec není a my se nyní podíváme zase trochu do praxe. Otestujeme si právě onu počítačovou hru, která veškerý tento humbuk kolem asynchronních shaderů způsobila, tedy

Asches of the Singularity

.


Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama