RTX 3000 versus RTX 2000, waarin het prestatieverschil in FP32 wordt uitgelegd

RTX 3000 versus RTX 2000

Een van de claims van NVIDIA met betrekking tot hun RTX 3000 is dat ze de drijvende komma hebben verdubbeld energie van hun GPU's, wat niet betekent dat de kracht en dus de prestaties van het geheel GPU is toegenomen in vergelijking met de RTX 2000 waarbij alle dingen gelijk zijn, maar slechts een deel van de GPU, maar het is het beste om u een uitleg te geven waarom zonder al te technische details te bespreken en op zo'n manier dat zelfs de meest beginnende gebruiker het kan begrijpen .

Volgens NVIDIA is de nieuwe RTX 3000-serie twee keer zo krachtig (in termen van floating point-prestaties) in vergelijking met de RTX 3000, maar de realiteit is dat dit in games niet betekent dat de prestaties zijn verdubbeld, en voor het begrijpen van de reden waarom dit gebeurt, moeten we een reeks premissen begrijpen om tot de conclusie te komen die de reden ervoor verklaart.

Nvidia Diapositiva Ampère

Wat bedoelt NVIDIA met floating point-prestaties? Het is een soort numerieke gegevens waarvan de rekensnelheid wordt gemeten door een hoeveelheid genaamd FLOPS, drijvende-kommabewerkingen per seconde, maar die om de volgende redenen op zijn minst misleidend is bij het vergelijken van apparaten:

  • Niet alle instructies lossen op in hetzelfde aantal klokcycli.
  • Elke processor, ongeacht zijn aard, voert een of meer bewerkingen uit in alle cycli.
  • Elke instructie, equivalent of equivalent wordt niet in alle architecturen in hetzelfde aantal cycli opgelost.

Dat wil zeggen, we kunnen twee systemen hebben met 10 TFLOPS aan vermogen en het ene is sneller dan het andere, omdat in het krachtigere systeem veranderingen zijn opgenomen in de architectuur waardoor dat model veel beter presteert dan het andere, zelfs als ze dezelfde drijvende-kommawaarde hebben en zelfs nog lager.

De RTX 3000 als een evolutie van de RTX 2000

Om tot het punt te komen waarin we geïnteresseerd zijn, moeten we dubbel inzoomen op de architectuur, te beginnen met de SM-eenheden van elk van beide architecturen:

Het deel dat ons interesseert binnen de SM is de “subcore” van elke architectuur, aangezien het ons in staat zal stellen de veranderingen in termen van prestatie in drijvende komma die zich hebben voorgedaan in de RTX 2000 ten opzichte van de RTX 3000 veel beter te begrijpen.

NVIDIA-ingenieurs, bij het ontwerpen van de Ampere-architectuur van de RTX 3000, werd de gloeilamp ingeschakeld en besloten ze een minder interessante wijziging aan te brengen in de "subcores" om de prestaties in drijvende komma te verbeteren in vergelijking met zijn voorganger door het aantal mogelijke items aan te passen .

Aangezien zowel Turing- als Ampere-subcores dezelfde warp-scheduler gebruiken en hetzelfde aantal registers hebben, hebben ze geprofiteerd van een kleine valstrik om de drijvende-kommagracht van elk van de "subcores" te kunnen verdubbelen. Wat is dat voor valstrik? Welnu, wat NVIDIA heeft gedaan, is nog eens 16 ALU's toevoegen in 32-bit floating point.

In zowel Turing als Ampere kunnen we 16 Int32 ALU's en 16 FP32 ALU's actief hebben, aangezien de scheduler 32 threads naar de registers stuurt die de corresponderende ALU's vervolgens zullen uitvoeren.

RTX 2000/3000 gelijktijdige uitvoering

NVIDIA noemt deze gelijktijdige uitvoering, en het is afhankelijk van het samen laten werken van de integer en floating-point ALU's.

Turing gelijktijdige uitvoering

Het probleem in de RTX 2000 komt wanneer we een golf van 32 threads in drijvende komma hebben: de integer ALU's kunnen die code niet uitvoeren, dus als we een golf van dat type hebben, moet deze in twee stappen worden opgelost in plaats van één alleen.

Nvidia RTX 2000 32FP

Wat NVIDIA heeft gedaan in de Ampere-architectuur door de ALU's in FP32 te verdubbelen, is dat een golf van 32 floating-point-threads kan worden opgelost in de helft van de tijd van Turing, waardoor de snelheid wordt verdubbeld (in die zin dat het slechts één cyclus kost om op te lossen het in plaats van twee).

RTX 3000 32 ALU FP

Dus tussen integer en floating point concurrent-modus is er geen verschil tussen de RTX 3000 en RTX 2000, en het floating point-voordeel op grafische kaarten met Ampere-architectuur zal alleen optreden wanneer ze een golf van maximaal 32 floating-point-threads uitvoeren.

De technische specificaties komen uit een context die niet overeenkomt met de werkelijkheid

Dibujo-Circuito-Arte

Als we eenmaal hebben gezien in welke situaties de RTX 3000 twee keer zo snel is als de RTX 2000, moeten we nog een element aan de vergelijking toevoegen en dat is dat als we het hebben over de FLOPS-snelheid, we het hebben over een theoretische snelheid die niet voorkomt in de echte scenario's, en het probleem met TFLOPS in GPU's is dat de cijfers die de fabrikanten geven tarieven zijn die zijn gebaseerd op:

  • De GPU voert het snelste type instructie uit, dat wil zeggen degene die de minste cycli duurt. Gewoonlijk wordt de FMADD / FMA gebruikt omdat het een rekenkundige instructie is die bestaat uit een optelling en een vermenigvuldiging die in dezelfde cyclus wordt opgelost.
  • Dezelfde instructie wordt altijd herhaaldelijk uitgevoerd, er zijn geen regeleinden in de code of enig ander type instructie.
  • De gegevens staan ​​in de registers, er is geen gegevensopzoeking in caches of VRAM-geheugen, dus deze instructie wordt uitgevoerd met de laagst mogelijke latentie.

Het is alsof we een sportwagen hebben gekocht voor zijn prestaties op een rechte stuk, waar hij ongehinderd tot het uiterste kan accelereren. De realiteit is dat de wegen veel complexer zijn dan simpele rechte lijnen en hetzelfde gebeurt met de grafische code van de spellen; Dit betekent dat deze indrukwekkende cijfers die alle fabrikanten geven, nooit worden gegeven en niet correleren met echte scenario's.

Dus de NVIDIA RTX 3000 is niet twee keer zo krachtig als de RTX 2000?

RTX 3000 versus 2000

Nee, dat zijn ze niet en het is iets dat u op dit punt in het artikel duidelijk had moeten zijn. We moeten begrijpen dat real-time 3D-graphics een pijplijn volgen die in verschillende fasen is verdeeld, in een groot deel daarvan zal de RTX 3000 niet sneller zijn dan een gelijkwaardige RTX 2000, maar in andere waar de drijvende-kommagracht belangrijk is, zal dat wel zo zijn. wanneer Ampere-grafieken de leiding zullen nemen en de uitvoering in dat deel van de grafiekpijplijn zullen versnellen, hoewel de prestatieverhoging nooit zal verdubbelen.

DX12-pijpleiding

De pijplijn is opgedeeld in delen die worden uitgevoerd door de SM's (Compute Units in AMD's jargon), de arceringstadia en zijn in het groen in het diagram, terwijl de delen in het blauw een vaste functie hebben. Deze worden uitgevoerd door bedrade en ongeplande eenheden en in dit geval zijn er geen verbeteringen aangebracht van de RTX 2000 naar de RTX 3000 (behalve op de RT Core, maar deze maakt geen deel uit van de rasterisatiepijplijn).

Om de situatie beter te begrijpen, is het het beste om een ​​vergelijking te gebruiken: stel je voor dat we twee verschillende auto's hebben, auto A en auto B die met dezelfde snelheid rechtdoor kunnen rijden, maar auto B heeft de bijzonderheid dat hij twee keer zo veel sneller bochten neemt dan auto A. Stel dat we ze hebben getest op een circuit verdeeld in 7 segmenten: 4 rechte stukken en 3 bochten.

Schema Coches

Zoals je kunt zien, kost auto B minder tijd om elke ronde van het circuit af te leggen dan zijn rivaal, en zonder twee keer zo snel te zijn, heeft hij een aanzienlijk voordeel door sneller in de bocht te zijn. Hetzelfde gebeurt tussen de RTX 3000 en de RTX 2000, hun prestaties zullen niet altijd verdubbelen, maar in specifieke situaties wel.

Waar hebben de RTX 3000 voordelen ten opzichte van de RTX 2000?

Quake 2 RTX

Vooral in alles dat niet afhankelijk is van vaste functie-eenheden, zoals de computationele pijplijn die tegenwoordig wordt gebruikt bij nabewerkingseffecten en in de Ray Tracing-fase van hybride weergave. Dit is de reden waarom in toepassingen zoals Quake 2 RTX de prestaties van de RTX 3000 het dubbele zijn van die van de RTX 2000, vanwege het feit dat het een spel is dat de uitvoering in drijvende komma enorm exploiteert en geen gebruik maakt van de functie-eenheden. helemaal. vaste rastering.

Met dit alles kun je de redenen begrijpen waarom de RTX 3000, ondanks een verdubbeling van de FLOPS, de prestaties niet verdubbelt in vergelijking met zijn voorganger.