Najveći je upitnik dali su stigli ubaciti async compute engines u arhitekturu. Dakle dali baš hardverski postoje, nikakva prtljanja s driverima
Ovo treba ispravit jednom za svagda
, dakle Async Computeing je samo feature u okviru DX12 kojeg se genaralno zamjenjuje za DX 12. Ne znam od kuda je taj stav došao.
Asinkrono izvršavanje redova naredbi znači da se 3d red i drugi redovi mogu izvršavati neovisno jedni o drugima. Na compute engineima izvršavaju se compute zadaci, a na 3d engineu i compute i ostali. Hardverski, svaki od redova ima svoj engine. Ovisno o izvedbi u hardveru i driveru, AMD i Nvidia mogu imati različit način rada s istim redovima.
Ono što je bitno je da AMD ima mogućnost da su različiti enginei aktivni istovremeno: 3D engine i do 8 compute enginea, dok kod Nvidie 3D engine i compute enginei ne mogu biti aktivni istovremeno. Uvjetno rečeno: naime, hardverski Nvidia to može i realno, da je osposobljeno za DirectX12, Nvidia bi mogla konkurentno izvršavati 3D engine i 32 compute reda CUDA API/driver to omogućava.
Nvidia ima probleme s performansama tamo gdje se pokušava koristiti 3d naredbe. Također, za razliku od AMD-a na 3d redu ima velike probleme s performansama ako se izdaju compute naredbe, dok AMD omogućava strašno dobru paralelizaciju s velikim brojem niti, ali istovremeno i dosta lošu iskorištenost hardvera ako se ne "napuni do vrha" zadacima. Da bi AMD imao iskorištenu veliku paralelizaciju treba mnogo compute zadataka, a to kod igara može biti fizika, grafika u post processingu... Nvidia traži prebacivanje načina rada, AMD radi paralelno. Naravno, kad je CUDA u pitanju, sve radi super i kod Nvidije, kako je već rečeno, paralelno na hardveru jer CUDA ima poseban sklop za to.
U praksi, optimizacija je problem. Engine za igru moraš pisati misleći na puno toga da ne zakineš jednu ili drugu arhitekturu, a opet, čak stvari koje su dobre za nove kartice istog proizvođača, mogu biti loše za generaciju ranije.
Mnogo toga se može poboljšati driverom, a Nvidia može iskoristiti neke prednosti koje ima nad AMD-om kao recimo 1+32 reda za paralelizaciju u odnosu na 1+8 enginea za AMD.
Ukratko, optimizacija za AMD ''šteti'' Nvidiji, optimizacija za Nvidiju ''šteti'' AMD-u.
Konkretno o DX12 sa službenih stranica:
https://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396#Overviewhttps://msdn.microsoft.com/en-us/library/windows/desktop/mt426647%28v=vs.85%29.aspx