Targetes gràfiques

Expliquem per què amd millora més que nvidia a el passar a directx 12

Taula de continguts:

Anonim

Segur que has llegit o escoltat que les targetes gràfiques d'AMD són molt millors en DirectX 12, que les de Nvidia, que l'arquitectura usada pels primers està molt més preparada per treballar amb l'API de nova generació. Són afirmacions que solem veure cada dia però Realment AMD és millor que Nvidia en DirectX 12? T'expliquem tot el que cal saber en aquest post.

L'overhead és la causa de la millora d'AMD amb DirectX 12

Des que es va començar a parlar de DirectX 12 hem vingut veient gràfiques de comparatives com les següents:

Aquestes gràfiques comparen dues targetes gràfiques equivalents com la GeForce GTX 980 Tu i la Radeon R9 Fury X, si ens guiem per les imatges anteriors veiem que AMD tenen un guany de rendiment brutal a el passar de DirectX 11 a DirectX 12, per contra Nvidia es queda igual o fins i tot perd rendiment a el passar a funcionar amb la nova API. Veient això qualsevol usuari pensaria que la targeta d'AMD és molt millor que la de Nvidia.

Ara passem a fixar-nos en la següent imatge:

Aquesta veus la gràfica compara el rendiment de la GeForce GTX 980 Tu i la Radeon R9 Fury X en DirectX 11 i DirectX 12. El que podem veure és que en DirectX 11 la targeta de Nvidia rendeix gairebé el doble que la d'AMD i a el passar a DirectX 12 el rendiment s'iguala. Veiem que la Radeon R9 Fury X millora el seu rendiment una barbaritat a el passar a treballar amb DirectX 12 i la GeForce GTX 980 Tu millora molt menys. El qualsevol cas el rendiment d'ambdues sota DirectX 12 és el mateix ja que la diferència no arriba a 2 FPS a favor de la Fury X.

Arribats a aquest punt hem de plantejar-nos per què AMD té tal millora a el passar a treballar amb DirectX 12 i Nvidia millora molt menys. Funciona AMD millor sota DirectX 12, que Nvidia o és que té un gran problema sota DirectX 11?

La resposta és que AMD té un gran problema sota DirectX 11, un problema que fa que les seves targetes funcionin pitjor que les de Nvidia. Aquest problema està relacionat amb l'ús que els drivers de la targeta fan de el processador, un problema que es coneix com "Overhead" o sobrecàrrega.

Les targetes gràfiques d'AMD fan un ús molt ineficient de l'processador sota DirectX 11, per comprovar aquest problema només hem de fixar-nos en els següents vídeos en què s'analitza el rendiment de la Radeon R7 270X i la GeForce GTX 750 Tu amb un Core- i7 4790K i després amb un Core-i3 4130. Com podem veure la gràfica d'AMD perd molt més rendiment a el passar a treballar amb un processador molt menys potent.

Far Cry 4

Ryse: Son of Rome

COD Advanced Warfare

La clau d'això està en les "command-queue" o llistes d'ordres sota DirectX 11. D'una forma molt senzilla i entenedora el podem resumir en que les targetes gràfiques d'AMD agafen totes les trucades de dibuixat a l'API i les posen en un únic nucli de l'processador, això fa que siguin molt dependents de la potència mico-fil de l'processador i per tant es ressentin molt a l'treballar al costat d'un processador menys potent per nucli. Aquesta és la raó que les gràfiques d'AMD patissin molt amb els processadors AMD FX, molt menys potents per nucli que els d'Intel.

En canvi Nvidia agafa les trucades de dibuixat a l'API i les divideix entre els diferents nuclis de l'processador, amb això es reparteix la càrrega i es fa un ús molt més eficient i es depèn menys de la potència per nucli de processador. Com a conseqüència AMD pateix molt més overhead que Nvidia sota DirectX 11.

Comprovar això últim és molt senzill, només hem de monitoritzar una targeta gràfica d'AMD i una de Nvidia sota el mateix joc i el mateix processador i veurem com en el cas de Nvidia tots els nuclis treballen d'una forma molt més equilibrada.

Aquest problema d'overhead queda solucionat sota DirectX 12 i aquesta el la raó principal de que les targetes gràfiques d'AMD tinguin un enorme guany de rendiment a el passar de DirectX 11 a DirectX 12. Si ens fixem en la següent gràfica veiem com sota DirectX 12 ia no es perd rendiment a el passar d'un processador de dos nuclis a un de quatre.

I per què AMD no fa com Nvidia?

La implementació que ha fet Nvidia de les command-queue en DirectX 11 és una cosa molt costós que requereix d'una gran inversió de diners i recursos humans. AMD ha estat passant per una mala situació financera per la qual cosa no disposa dels mims recursos que Nvidia per invertir. A més el futur passa per DirectX 12 i aquí no hi ha aquest problema d'overhead ja que la pròpia API és la que s'encarrega de gestionar les command-queue d'una forma molt més eficient.

A més l'aproximació de Nvidia té el problema de ser molt més dependent de l'optimització dels drivers, per això Nvidia sol ser la primera a alliberar noves versions dels seus drivers cada vegada que surt a l'mercat un joc important, tot i que AMD s'ha posat les piles en aquest últimament. L'aproximació d'AMD té l'avantatge de ser molt menys dependent dels drivers pel que els seus targetes no necessiten noves versions amb tanta urgència com les de Nvidia, aquesta és una de les raons per les que les targetes gràfiques de Nvidia envelleixen pitjor amb el pas de el temps quan se'ls deixa de donar suport.

¿I que hi ha dels Shaders Asíncrons?

També s'ha parlat molt dels Shaders Asíncrons, respecte a això només cal dir que se li ha donat molta importància quan en realitat l'overhead és molt més important i determinant de l'rendiment de la targeta gràfica. Nvidia també els suporta encara que la seva implementació és molt més simple que la d'AMD, la raó d'això és que la seva arquitectura Pascal treballa d'una manera molt més eficient pel que no necessita els Shaders Asíncrons tant com AMD.

Les gràfiques d'AMD inclouen els ACE que són un motor de maquinari dedicat a l'còmput asíncron, un maquinari que ocupa espai en el xip i consumeix energia pel que la seva implementació no és cap caprici sinó que obeeix a una gran deficiència de l'arquitectura Graphics Core Next d'AMD amb la geometria. L'arquitectura d'AMD és molt poc eficient a l'hora de repartir la càrrega de treball entre els diferents Compute Units i els nuclis que els formen, això fa que quedin molts nuclis sense feina i per tant desaprofitats. El que fan els ACE i els Shaders Asíncrons és "donar feina" a aquests nuclis que s'han quedat aturats perquè puguin ser aprofitats.

A l'altra banda tenim a les gràfiques de Nvidia basades en les arquitectures Maxwell i Pascal, aquestes són molt més eficients en la geometria i el nombre de nuclis és molt inferior a el de les gràfiques d'AMD. Això fa que l'arquitectura de Nvidia sigui molt més eficient a l'hora de repartir el treball i no quedin tants nuclis desaprofitats com en el cas d'AMD. La implementació dels Shaders Asíncrons en Pascal es fa mitjançant programari, doncs fer una implementació per hardware no aportaria gairebé avantatges en rendiment i si que seria un llast en la mida de l'xip i el seu consum d'energia.

La següent gràfica mostra el guany de rendiment d'AMD i Nvidia amb els Shaders Asíncrons en 3D Mark Time Spy:

Que Nvidia faci una implementació dels Shaders Asíncrons per maquinari en el futur depèn que els beneficis siguin majors als perjudicis.

Targetes gràfiques

Selecció de l'editor

Back to top button