RadeonSI přináší podporu pro Primitive Culling zvyšující výkon až na 450 %
Jádro změny spočívá v implementaci funkce Primitive Culling (ořezávání „neviditelné“ geometrie, tedy polygonů, které se nepodílejí na vzhledu scény a proto je lze při zpracování vynechat) prostřednictvím asynchronních výpočtů. Hned v úvodu je třeba říct, že nejde o funkci zvanou Primitive Shaders, jak by se možná leckdo mohl domnívat. Implementace funguje na hardwaru od druhé generace GCN (Radeon R9 290X / Radeon 7790 a novější architektura) a vychází z myšlenky, která je využita ve Frostbite engine.
Autor, Marek Olšák, testem v ParaView zjistil, že výkonnostní posun může dosahovat desítek až stovek procent. Výsledky na Radeonech změřil sám, výsledky GeForce převzal z testu na Phoronix. Všimněte si, že nejvyššího posunu (na více než 300 %) dosahuje Radeon VII, který je jednak výpočetně orientovaný a jednak byla jeho architektura vylepšena o efektivnější podporu asynchronních výpočtů. Podle Marka dosáhlo nejvyšší naměřené zrychlení 450 %.
Je potřeba mít na paměti, že k popsanému zrychlení dochází v aplikaci, která je limitovaná geometrickým výkonem a zároveň sama neprovádí Primitive Culling. Pokud tedy jde o moderní hry (konkrétně v případě zmíněného Frostbite engine to je Battlefield 4 a novější), tak tam už ke změně výkonu nedojde, neboť hra již neviditelnou geometrii ořezává sama. Pro starší nebo profesionální software ale může tato implementace přinést značný výkonnostní bonus.
People using the Pro graphics cards can disable this by setting AMD_DEBUG=nopd, and people using consumer graphics cards can enable this by setting AMD_DEBUG=pd. So you always have a choice. |
Pro stabilní fungování je potřeba použít poslední verzi LLVM 8.0. Více informací najdete v diskusi na Phoronix.