Hlavní navigace

Názor k článku Tržní podíly výrobců grafik v Q3 2017: Nvidia vylétla nahoru, získává tržní podíl od Maudit - At si zverejnuje, co chce. To jsi tu...

  • 24. 11. 2017 22:37

    Maudit (neregistrovaný)

    At si zverejnuje, co chce. To jsi tu pointu ocividne nepochopil. Jeho pomylenost je v tom, ze on na zaklade tech zverejnenych technologii povazuje AMD za technologicky pokrocilejsi, ale vubec neuvazuje o rovine tech nezverejnenych. O tom rozhoduji fakta, ne nazory. A nazor, ktery se nezaklada na faktech, ale jen na nejakych PR slajdech, ten opravdu respektovat nebudu a budu ho cupovat :) Fakt je ten, ze Nvidia docela s prehledem dokaze drtit jakoukoliv konkurenci od AMD. A to s rok a pul starou architekturou. A to je ta jedina overitelna informace, na ktere se da nejake hodnoceni stavet.

    Co se tyce AS, tak tam je situace jeste horsi, potoze Soucek nema technicke vzdelani a neni programator. To plati i pro nektere dalsi techweby. Kdyby byl a mel zkusenosti s D3D nebo OGL, tak by vedel, jak predchudci D3D 12 funguji. Herni engine totiz nedava prikazy GPU, co ma delat, ktere by se hned vykonaly (low-level). To dela s urcitou mirou abstrakce az prave D3D 12 nebo Vulkan. U D3D 11 a drivejsich to ale funguje jinak - herni engine rika driveru, kde jsou data a co s nimi chce delat (a to v hodne abstraktni, high-level podobe). Driver pak dane operace vykonava nebo nevykonava dle sveho uvazeni a poradi, tak jak to vyhodnoti jako optimalni. To zahrnuje treba i spravu pameti - v realu u D3D nikdy nemuzes predpokladat, kde se nejaka data (textury, meshe) nachazeji - jestli v graficke pameti, v systemove, nebo v obojim. V D3D 12 spravujes pamet sam, coz je vyhoda i nevyhoda zaroven (memory management je tezke udelat spravne, proto jsou tak popularni jazyky jako Java nebo C#, ktere to delaji za programatora).

    Duvody pro to jsou jednoduche - u D3D 11 nepotrebuje programator vedet ty nejmensi detaily, ale jen high-level konstrukce (a streaming operace, jako treba shadery). O vsechno ostatni (low-level) se stara driver. U D3D 12 jsou naroky na programatory nekolikanasobne vyssi (i vysledny pocet radek kodu je nekolikanasobe vetsi), protoze muzou (a musi) resit vsechny ty low-level veci sami. A tady se dostavam k dalsi absurdite, kterou Soucek a Stach tvrdi - cekaji, az budou vsechny nove hry na D3D 12. Nebudou. Vyvoj komplexniho D3D 12 enginu si muzou dovolit jen velke spolecnosti. Takze hry od velkych studii mozna ano, hry od malych jen pokud si koupi velky komercni engine a nebudou delat modifikace. D3D 11 hry budou vznikat porad, protoze to ma svoje opodstatneni. Mozna by to v Microsoftu meli prejmenovat, treba na D3D High-Level a D3D Low-level. To by bylo vystiznejsi :)

    Jak rozdil mezi D3D 11 a 12 souvisi s AS? Jednoduse. V D3D 11 zavisi vykon velmi silne na tom, jak dobre dokaze driver optimalizovat provadeni pozadovanych draw-calls tak, aby co nejlepe vyuzil zdroje GPU. Nvidia v tomhle sla opravdu velmi, velmi daleko (az do bodu, kdy vyrazne pozmenuje hrou navrzeny render cycle). To vyzaduje rozsahly GPU profiling, kdy se lidi z Nvidie divaji, jak dana hra renderuje, kolik,kdy a jakych draw-calls pouziva. Navic diky tomu ma jejich razeni plne pod kontrolou a muze je provadet v davkach, odpovidajicich jejich hradwaru (coz je u D3D 12 mnohem horsi, kontrola prechazi od driveru k vyvojari). Async Shaders/Async Compute je vicemene rozsireni toho konceptu, protoze jde o to, jak dane draw-calls vyhodnocovat co nejvic paralelne. Ten problem je velmi komplexni - vem si, ze beznym procesorum dela multi-threading semtam dost velke problemy i dnes, a to maji treba jen 2,4,8 jader a 16 vlaken. GPU ma jader treba 2000. Nvidia interne dela async compute uz od dob Fermi. Velkou cast toho problemu zvlada resit uz dlouho a interne v driverch (bez interakce programatora) to u D3D 11 titulu vyuziva i bez AS z D3D 12. Proto u Nvidie neni narust s AS tak veliky, ten paralelismus tam byl v dost velke mire uz i v D3D 11 (a driv). Rozhodne to neni tak, ze by byla implementace AS u Nvidie horsi. Naopak, pokud je workload napriklad rozdeleny do max. 32 front (u Maxwellu), jsou AS pro ten samy workload vyrazne rychlejsi, nez u AMD. U vice front dokazou GPU od AMD Nvidii dohnat (ale ne predehnat, pozor!!!).

    "Maxwell is capable of Async compute (and Async Shaders), and is actually faster when it can stay within its work order limit (1+31 queues). Though, it evens out with GCN parts toward 96-128 simultaneous command lists (3-4 work order loads)."

    https://www.reddit.com/r/nvidia/comments/3j5e9b/analysis_async_compute_is_it_true_nvidia_cant_do/


    Takze GPU od Nvidie (i dnes uz relativne stary Maxwell), zvladaji asynchronni shadery v nekterych situacich vyrazne lepe, nez AMD, v ostatnich minimalne stejne dobre. Jenze pointa je v tom, ze je z casti pouzivali uz u D3D 11, takze pri prechodu na D3D 12 neni zisk tak vyrazny.

    Soucek a Stach jsou proste fandove, hltajici slajdy. Jejich technicke znalosti jsou na bodu mrazu. Sorry, ale to je tvrda realita. Pred nekolika lety, kdyz jsem na diit (tehdy jeste CDR) chodil, tak jsem mel snahu, pozitivni, jim vsechno podstive a trpelive vysletlovat, bez emoci. Jenze jak uz to u fandu byva, nebyl zajem. Tak ted uz jim ten domecek z karet uz jen cupuju. Aspon je to trochu sranda :)