Hai seguito le voci e ignorato l'hype; hai aspettato Commenti e ha esaminato tutte le metriche. Alla fine, hai schiaffeggiato i tuoi soldi e te ne sei andato con una delle ultime schede grafiche di AMD o Nvidia. Tra questi, un grande processore grafico pieno di miliardi di transistor funziona a velocità di clock impensabili un decennio fa.

Sei davvero soddisfatto del tuo acquisto e i giochi non hanno un aspetto migliore. Ma ti starai chiedendo cosa alimenta esattamente la tua nuova Radeon. RX 5700 e quanto è diverso in un chip GeForce RTX.

Benvenuti nell'architettura e nel confronto delle funzionalità di AMD e Nvidia: Navi e le ultime GPU di Turing.

Anatomia della GPU moderna

Prima di iniziare a scomporre strutture e sistemi di chip comuni, diamo un'occhiata alla forma di base seguita da tutte le GPU moderne. Per la maggior parte, questi processori sono solo calcolatori a virgola mobile (FP); in altre parole, eseguono operazioni matematiche su valori decimali / frazionari. Quindi almeno una GPU deve avere un'unità logica dedicata a queste attività, e queste di solito sono FP ALU (unità logiche aritmetiche in virgola mobile) o FPU in breve. Non tutti i calcoli eseguiti dalle GPU sono in valori di dati FP, quindi ci sarà anche un ALU per il numero intero (numero intero) può essere la stessa unità che gestisce le operazioni matematiche o entrambi i tipi di dati.




Ora, queste unità logiche avranno bisogno di qualcosa per organizzarle decodificando e organizzando i codici per tenerle occupate, e questo sarà sotto forma di almeno un insieme speciale di unità logiche. A differenza delle ALU, non possono essere programmate dall'utente finale; invece, il fornitore di hardware garantirà che questo processo sia completamente gestito dalla GPU e dai suoi driver.




Deve anche esserci un qualche tipo di struttura di memoria per memorizzare queste istruzioni e i dati che devono essere elaborati. Al suo livello più semplice, sarà in due forme: cache e un punto memoria locale. Il primo sarà incorporato nella GPU e VERGOGNA. Questo tipo di memoria è veloce, ma occupa relativamente gran parte del layout del processore. Memoria locale DRAMMAÈ leggermente più lento della SRAM e normalmente non viene montato sulla GPU. Memoria locale sulla maggior parte delle schede grafiche che vediamo oggi GDDR Moduli DRAM.

Infine, include attività di impostazione aggiuntive come la creazione di grafica 3D, la creazione di triangoli dagli angoli, la rasterizzazione di una cornice 3D, il campionamento e la fusione di trame. Come le unità di istruzione e controllo, anche queste funzione costante in natura. Quello che fanno e come funzionano è completamente trasparente per gli utenti che programmano e utilizzano la GPU.




Mettiamolo insieme e creiamo una GPU:




Il blocco arancione è l'unità che elabora le trame usando ciò che viene chiamato unità di mappatura delle texture (TMU'lar) - TA indirizzamento delle texture volume - crea posizioni di memoria per la cache e la memoria locale da utilizzare - e TF non portare consistenza raccoglie i valori delle texture dalla memoria e li mette insieme. Oggi, le TMU sono praticamente le stesse per tutti i fornitori perché possono gestire, campionare e combinare più valori di texture per ciclo di clock della GPU.




Il blocco sottostante scrive i valori di colore dei pixel nella cornice, li campiona (PO) e li miscela (PB); questo blocco esegue anche le operazioni utilizzate quando viene applicato l'anti-aliasing. Il nome di questo blocco: render unità di output or creare backend (ROP / RB in breve). Come il TMU, ora stanno diventando abbastanza standard, ognuno dei quali gestisce comodamente pochi pixel per ciclo di clock.

Tuttavia, la nostra GPU di base sarebbe stata terribile anche per gli standard di 13 anni fa. Perché?

C'è solo una FPU, TMU e ROP. Nel 2006, i processori grafici come la GeForce 8800 GTX di Nvidia avevano rispettivamente 128, 32 e 24. Quindi iniziamo a fare qualcosa al riguardo ...




Come ogni buon produttore di processori, abbiamo aggiornato la GPU aggiungendo altre unità. Ciò significa che il chip può elaborare più istruzioni contemporaneamente. Per aiutare con questo, abbiamo aggiunto altre cache, ma questa volta proprio accanto alle unità logiche. Più la cache è vicina alla struttura di una calcolatrice, più velocemente può essere inizializzata nelle transazioni ad essa assegnate.

Il problema con il nostro nuovo design è che è ancora disponibile un solo controller per gestire le nostre ALU extra. Sarebbe meglio se avessimo più blocchi di unità, tutti gestiti da controller separati, in quanto ciò significa che possiamo eseguire operazioni molto diverse allo stesso tempo.

Ora questo è di più! Blocchi ALU separati imballati con le proprie TMU e ROP e supportati da fette di cache deliziosamente gustose e veloci. È ancora solo uno di tutto, ma la struttura di base non è a un milione di miglia di distanza dal processore grafico che vediamo oggi su computer e console.

Navi ve Turing: Godzilla GPU'ları

Ora che abbiamo definito il layout di base di un chip grafico, sebbene leggermente ingrandito ed elaborato per evidenziare varie strutture, Navi vs. Cominciamo il nostro confronto di Turing.

A sinistra c'è l'ultimo processore di AMD. Il design generale del chip si chiama Navi (alcuni sono chiamati Navi 10) e l'architettura grafica si chiama RDNA. Accanto ad esso, a destra, c'è il processore TU102 full-size di Nvidia con l'ultima architettura Turing. È importante notare che queste immagini non sono in scala: l'area del die Navi è di 251 mm2, mentre TU102 è di 752 mm2. Il processore Nvidia è grande, ma non 8 volte più grande dell'offerta AMD!

Tutti e due colossale il numero di transistor (10,3 contro 18,6 miliardi), ma TU102 ha una media di ~ 25 milioni di transistor per mm quadrato rispetto ai 41 milioni di Navi per mm quadrato.

Questo perché mentre entrambi i chip sono prodotti da TSMC, sono prodotti in diversi nodi di processo: Turing di Nvidia è sulla linea di produzione matura a 12 nm, mentre Navi di AMD è prodotto nel nuovo nodo a 7 nm.

Guardare solo le immagini degli stampi non ci dice molto sulle architetture, quindi diamo un'occhiata ai diagrammi a blocchi della GPU prodotti da entrambe le società.

I diagrammi non sono una rappresentazione realistica al 100% dei layout effettivi, ma ruotandoli di 90 gradi è possibile definire i vari blocchi e la fascia centrale che compaiono su entrambi. Per cominciare, possiamo vedere che le due GPU hanno una struttura generale come la nostra (anche se più che altro!).

Entrambi i progetti seguono un approccio a più livelli su come tutto è organizzato e raggruppato: per iniziare a utilizzare Navi, la GPU è composta da 2 blocchi che AMD sta cercando. Shader Motors (SE), ognuno di essi è chiamato 2 blocchi asincrono Motori di elaborazione (ASSO). Ognuno di questi contiene 5 blocchi nel titolo. Processori per gruppi di lavoro (WGP), che consiste di 2 Unità di elaborazione delle informazioni (Öze).

Nomi e numeri sono diversi per il design di Turing, ma la gerarchia è molto simile: 6 Cluster di elaborazione grafica (GPC), 6 ciascuno Cluster di elaborazione delle texture (TPC), 2 ciascuno Stream multiprocessore (SM) blocchi.

Se si considera un processore grafico come una grande fabbrica in cui diversi reparti producono prodotti diversi utilizzando le stesse materie prime, questa organizzazione inizia ad avere un senso. L'amministratore delegato della fabbrica invia tutti i dettagli operativi all'azienda e quindi si divide in vari compiti e carichi di lavoro. Avendone più di uno, indipendente La produttività della forza lavoro è stata aumentata in fabbrica. Non è diverso per le GPU ed ecco la parola chiave magica tempismo.

Davanti e al centro, Soldato - Tempistica e spedizione

Come guardiamo Esercizi di creazione di giochi 3DAbbiamo visto che il processore grafico non è altro che una calcolatrice super veloce eseguendo una serie di operazioni matematiche su milioni di pezzi di dati. Navi e Turing sono classificati come segue: Dati multipli a comando singolo Processori (SIMD), ma una migliore spiegazione Single Way Multi Filo (Senso).

Un moderno gioco 3D produce centinaia di thread, a volte migliaia, poiché il numero di vertici e pixel da renderizzare è enorme. Per garantire che sia tutto fatto in pochi microsecondi, è importante avere quante più unità logiche possibili senza fermare tutto perché i dati richiesti non sono nel posto giusto o non c'è abbastanza spazio per le risorse per lavorare all'interno.

Quando abbiamo esaminato il funzionamento della creazione di giochi 3D, abbiamo visto che un processore grafico non è altro che una calcolatrice molto veloce e abbiamo eseguito varie operazioni matematiche su milioni di dati. Navi e Turing sono classificati come processori SIMD (Single Command Multiple Data), ma una spiegazione migliore sarebbe SIMT (Single Command Multiple Threads).

Navi e Turing funzionano in modo simile, quindi un'unità centrale prende tutti i thread e quindi inizia a programmarli e trasmetterli. Nel chip AMD, questo ruolo Processore di comandi grafici; Nvidia'da, GigaThread Motoru. I thread sono disposti in modo che quelli con le stesse istruzioni siano raggruppati in una raccolta di 32 gruppi.

AMD questa raccolta ondamentre Nvidia questo curvatura. Per Navi, un'unità di elaborazione può gestire 2 ondate (o un'ondata di 64 thread, ma questo processo richiede il doppio del tempo) e in Turing un multiprocessore di flusso viene eseguito con 4 orditi. In entrambi i modelli, l'onda / ordito è indipendente, il che significa che gli altri non hanno bisogno di finirlo prima di iniziare.

Fino ad allora, non è molto diverso tra Navi e Turing: entrambi sono stati progettati per gestire un gran numero di thread per la creazione e l'elaborazione dei carichi di lavoro. Dobbiamo guardare a quali processori si trovano questi thread per vedere dove i due giganti della GPU si separano nel design.

Differenza esecutiva - RDNA e CUDA

Mentre la maggior parte della terminologia utilizzata sembra la stessa, AMD e Nvidia adottano un approccio piuttosto diverso alle unità shader combinate. Le unità di esecuzione di Nvidia (MIRACOLI semi) digitale in natura - questo significa che un'unità esegue un'operazione matematica su un componente dati; A differenza delle unità AMD (Processori di flusso) lavorare su vettori - un'operazione su più componenti di dati. C'è solo un'unità specifica per le operazioni scalari.

Prima di dare un'occhiata più da vicino alle unità di esecuzione, diamo un'occhiata alle modifiche di AMD. Per 7 anni, le schede grafiche Radeon hanno seguito un'architettura chiamata Graphics Core Next (GCN). Ogni nuovo chip ha rivisto vari aspetti del design, ma sostanzialmente erano tutti uguali.

AMD ha presentato una breve storia dell'architettura GPU:

GCN è stata un'evoluzione di TeraScale, un design che consente di elaborare contemporaneamente onde di grandi dimensioni. La cosa principale con TeraScale era che non era molto facile contro i programmatori e necessitavano di routine molto specifiche per ottenere il meglio. GCN ha risolto questo problema e ha fornito una piattaforma molto più accessibile.

Le CU in Navi sono state riviste in modo significativo da GCN come parte del processo di miglioramento di AMD. Ogni CU contiene due set:

  • 32 SP (ALU vettoriali IEE754 FP32 e INT32)
  • 1 SFU
  • 1 INT32 bilancia ALU
  • 1 unità di tempistica e consegna

Oltre a questi, ogni CU contiene 4 unità di tessuto. Esistono altre unità per eseguire operazioni di lettura / scrittura dei dati dalla cache, ma non mostrate nell'immagine seguente:

Rispetto a GCN, la configurazione di un RDNA CU potrebbe non sembrare molto diversa, ma tutto ciò che è importante qui è organizzato e organizzato in questo modo. Per cominciare, ogni set di 32 SP ha la propria unità di istruzioni dedicata, GCN aveva un solo programma per 4 set di 16 SP.

Si tratta di un cambiamento significativo, il che significa che un'onda di 32 thread per ciclo di clock può essere inviata a ciascun set di SP. L'architettura RDNA consente inoltre alle unità vettoriali di elaborare ondate di 16 thread al doppio della velocità e ondate di 64 thread a metà, quindi il codice scritto per tutte le precedenti schede grafiche Radeon è ancora supportato.

Queste modifiche saranno molto popolari per gli sviluppatori di giochi.

Per le operazioni scalari, ora ci sono due unità che possono gestirle; l'unica riduzione nel numero di componenti è sotto forma di SFU - questi sono funzione speciale unitàesegue operazioni matematiche molto specifiche, ad es. trigonometrico (seno, tangente), reciproco (1 diviso per un numero) e radici quadrate. RDNA ne ha meno delle GCN, ma ora possono operare su set di dati due volte più grandi di prima.

Queste modifiche saranno molto popolari per gli sviluppatori di giochi. C'erano molte prestazioni potenziali sulle vecchie schede grafiche Radeon, ma era molto difficile da fare. Ora AMD ha compiuto un grande passo verso la riduzione della latenza nell'elaborazione delle istruzioni e il mantenimento delle funzionalità per garantire la retrocompatibilità per tutti i programmi progettati per l'architettura GCN.

E la grafica professionale o il mercato dei computer? Questi cambiamenti sono utili anche per loro?

La risposta breve è sì (probabilmente). L'attuale versione del chip Navi trovato sulle controparti della Radeon RX 5700 XT ha meno Stream Processor rispetto al precedente design Vega, mentre ci siamo comportati meglio la generazione precedente Radeon RX Vega 56 è abbastanza semplice:

Parte di questo guadagno in termini di prestazioni verrà dalla maggiore velocità di clock dell'RX 5700 XT rispetto all'RX Vega 56 (quindi può scrivere più pixel al secondo nella memoria locale), ma diminuisce fino al 15% al ​​massimo delle prestazioni in virgola mobile e intero; tuttavia, abbiamo riscontrato che il chip Navi si è comportato meglio del 18% rispetto al Vega.

Gli scienziati che eseguono programmi di rendering professionali e algoritmi complessi non sono pieni di pochi round di Battlefield V nel loro lavoro (ad es potrebbe essere...) solo se le operazioni scalari, vettoriali e matriciali eseguite in un motore di gioco vengono elaborate più velocemente nave trasformalo nel mercato dei computer. Al momento, non sappiamo quali siano i piani di AMD per il mercato professionale: possono andare bene con l'architettura Vega e aiutare a migliorare il design, la produzione, ma visti i progressi di Navi, l'azienda sposta tutto sulla nuova architettura.

Il design della GPU di Nvidia ha subito un'evoluzione simile dal 2006, quando hanno lanciato la serie GeForce 8, sebbene modifiche meno radicali rispetto ad AMD. Questa GPU ha creato la prima architettura Tesla per utilizzare un approccio shader nell'architettura di esecuzione. Di seguito possiamo vedere i cambiamenti nei blocchi SM dal successore di Tesla (Fermi) al predecessore di Turing (Volta):

Come accennato in precedenza in questo articolo, i kernel CUDA digitale. Possono eseguire un'istruzione a virgola mobile e un'istruzione intera per ciclo di clock su un componente dati (si noti, tuttavia, che l'istruzione stessa può richiedere più cicli di clock per essere elaborata), ma le unità di temporizzazione li organizzano in gruppi, possono eseguire operazioni vettoriali su un programmatore. Il cambiamento più significativo nel corso degli anni include non solo l'essere più unità, ma il modo in cui sono organizzate e segmentate.

Nel progetto Kepler, il chip completo aveva 5 GPC, ciascuno contenente tre blocchi SM; Quando è emerso Pascal, i GPC sono stati suddivisi in partizioni separate (TPC) con due SM per TPC. Come con il design Navi. questa frammentazione è importante in quanto consente di utilizzare la GPU generale nel modo più completo possibile; Più set di istruzioni indipendenti possono essere elaborati in parallelo, aumentando l'ombreggiatura e le prestazioni di calcolo del processore.

Diamo un'occhiata all'equivalente di Turing all'unità di calcolo RDNA:

Un SM contiene 4 blocchi di transazioni, ciascuno contenente:

  • 1 unità di pianificazione e invio istruzioni
  • 16 IEE754 FP32 scala ALU
  • 16 INT32 bilancia ALU
  • 2 colori tensoriali
  • 4 SFU
  • 4 Load / Storage (esecuzione di operazioni di lettura / scrittura della cache)

Ci sono anche 2 unità FP64 per SM, ma Nvidia non le visualizza più nei diagrammi a blocchi e ogni SM ha 4 unità texture (include l'indirizzamento delle texture e i sistemi di filtraggio delle texture) e 1 core RT (Ray Tracing).

Le ALU FP32 e INT32 possono funzionare simultaneamente e in parallelo. Questa è una caratteristica importante perché i motori di rendering 3D spesso richiedono calcoli in virgola mobile, ma c'è un numero ragionevole di semplici operazioni su interi (ad es. Calcoli di indirizzi dati) da eseguire.

I Tensor Core sono ALU speciali che eseguono operazioni con le matrici. Le matrici sono array di dati "quadrati" e i core Tensor vengono eseguiti su una matrice 4 x 4. L'FP16 è progettato per elaborare i componenti di dati INT8 o INT4 in modo che il funzionamento a virgola mobile si verifichi su 64 FMA (moltiplicato dopo l'aggiunta) in un ciclo di clock. Questo tipo di calcolo è chiamato reti neurali e inferenza - non esattamente comune nei giochi 3D, ma ampiamente utilizzato dai Mi piace di Facebook nelle auto con algoritmi di analisi dei social media o sistemi di guida autonoma. Navi può anche eseguire calcoli con matrici, ma per questo richiede un numero elevato di SP; Nel sistema di Turing, le operazioni con le matrici possono essere eseguite mentre i core CUDA fanno altri calcoli.

RT Core è un'altra unità speciale unica dell'architettura di Turing che esegue algoritmi matematici molto specifici utilizzati per il sistema di ray tracing di Nvidia. Un'analisi completa di questo va oltre lo scopo di questo articolo, ma RT Core sono due sistemi che funzionano separatamente dal resto dell'SM, quindi mentre RT Core è impegnato a fare calcoli, può funzionare su peak o pixel shader. per il ray tracing.

Al livello base, Navi e Turing hanno unità di esecuzione che offrono un set di funzionalità abbastanza simile (un requisito che deriva dalla conformità ai requisiti di Direct3D, OpenGL, ecc.).

A livello di base, Navi e Turing hanno unità di esecuzione che offrono un set di funzionalità abbastanza simile (un requisito che deriva dalla conformità ai requisiti di Direct3D, OpenGL, ecc.), Ma adottano un approccio molto diverso a come sono queste funzionalità. finito. Quando si tratta di quale design è migliore, si tratta di come vengono utilizzati: FP32 un programma che produce calcoli vettoriali e un gran numero di thread che esegue poco preferirebbe Navi, mentre un programma con una varietà di calcoli interi, in virgola mobile, scalari e vettoriali darà la flessibilità di Turing. preferisce, ecc.

Gerarchia della memoria

Le GPU moderne sono progettate per eseguire una serie di operazioni sui processori di flusso, ovvero su ogni elemento in un flusso di dati. Questo li rende meno flessibili di una CPU per uso generico e richiede anche l'ottimizzazione della gerarchia di memoria del chip per ricevere dati e istruzioni alle ALU il più velocemente possibile e nel maggior numero di flussi possibile. Ciò significa che le GPU avranno meno cache della CPU, poiché la maggior parte del chip deve essere dedicata alla quantità di cache, non all'accesso alla cache.

Sia AMD che Nvidia ricorrono all'uso di più cache all'interno dei chip, quindi diamo un'occhiata prima a ciò che Navi racchiude.

A partire dal livello più basso nella gerarchia, due blocchi di Stream Processor utilizzano un totale di 256 pound vector general purpose register (solitamente file di registro) Era la stessa quantità di Vega ma tra 4 blocchi SP; L'esaurimento dei registri durante il tentativo di elaborare un gran numero di thread danneggia davvero le prestazioni, quindi questa è sicuramente una "buona cosa". AMD ha anche notevolmente aumentato il file di registrazione scalare. Quando prima erano solo 4 kiB, ora sono 32 chili per unità scalare.

Le due unità di calcolo condividono quindi una cache L0 da 32 libbre e una cache dati scalare da 16 libbre, ma ciascuna CU riceve la propria cache L0 vettoriale da 32 libbre; Il collegamento di tutta questa memoria alle ALU è una condivisione dati locale di 128 libbre.

In Navi, due motori di elaborazione creano un processore per gruppi di lavoro e cinque di essi formano il motore di elaborazione asincrona (ACE). Ogni ACE ha accesso alla propria cache L1 da 128 libbre e l'intera GPU è ulteriormente supportata da 4 cache L2 MiB che si collegano alle cache L1 e ad altre parti del processore.

Poiché il sistema è strettamente utilizzato per gestire 16 controller di memoria GDDR6, è una forma dell'architettura di connettività Infinity Fabric proprietaria di AMD. Per massimizzare la larghezza di banda della memoria, Navi utilizza anche la compressione del colore senza perdita di dati tra la memoria L1, L2 e GDDR6 nativa.

Ancora una volta, tutto ciò è particolarmente apprezzato rispetto ai precedenti chip AMD che non avevano abbastanza cache di basso livello per il numero di unità di shading che contengono. In breve, più cache equivale a più larghezza di banda interna, istruzioni meno lente (perché devono recuperare più dati dalla memoria), ecc. E questo equivale a prestazioni migliori.

Sulla gerarchia di Turing, va detto che Nvidia è dal lato timido quando si tratta di fornire una conoscenza approfondita in questo settore. In precedenza in questo articolo, abbiamo visto ogni SM suddiviso in 4 blocchi di transazione: ognuno ha un file di registro di 64 libbre più piccolo di quello trovato in Navi, ma tieni presente che le ALU di Turing sono scalari, non vettori. , unità.

Successivamente, 96 kb di memoria condivisa per ciascuna VM possono essere utilizzati come 64 kb di cache di dati L1 e 32 kb di cache dei tessuti o spazio di registrazione aggiuntivo. In "modalità di calcolo" la memoria condivisa può essere suddivisa in diverse partizioni, come 32 kb di memoria condivisa e 64 kiB di cache L1, ma sempre come 64 + 32 divisioni.

La mancanza di dettagli forniti sul sistema di memoria Turning ci ha fatto desiderare di più, quindi ci siamo rivolti a un team di ricerca GPU che lavora presso Citadel Enterprise Americas. Di recente hanno pubblicato due articoli. Tempo ve Turing architetture; L'immagine sopra è la frammentazione della gerarchia della memoria nel chip TU104 (cache TU102 sport 6144 kiB L2 completa).

Il team ha confermato che il throughput della cache L1 era di 64 bit per ciclo e ha affermato che durante i test l'efficienza della cache L1 di Turing era la migliore di tutte le GPU di Nvidia. Questo è alla pari con Navi, sebbene il chip di AMD abbia una velocità di lettura più alta per Local Data Store, ma una velocità inferiore per le istruzioni / cache fisse.

Entrambe le GPU utilizzano GDDR6 per la memoria locale - questa è l'ultima versione di Graphics DDR SDRAM - ed entrambe utilizzano connessioni a 32 bit ai moduli di memoria, quindi Radeon RX 5700 XT Dispone di 256 chip di memoria e fornisce una larghezza di banda massima di 256 GiB / se 8 GiB di spazio. uno GeForce RTX 2080 Ti Con il chip TU102, funziona con 11 moduli di questo tipo per una larghezza di banda di 352 GiB / se 11 GiB di archiviazione.

La documentazione di AMD a volte può sembrare confusa: nel primo diagramma a blocchi vediamo Navi mostra quattro controller di memoria a 64 bit, mentre un'immagine successiva mostra 16 controller. Considerando Samsung offre solo GDDR6 a 32 bit Sembra che la seconda immagine mostri quante connessioni ci sono tra il sistema Infinity Fabric e i controller di memoria. Probabilmente ci sono solo 4 controller di memoria e ciascuno utilizza due moduli.

Nel complesso, non sembra esserci un'enorme differenza tra Navi e Turing quando si tratta delle loro cache e della memoria locale. C'è un po 'di più nell'avvicinarsi di Navi al lato dell'esecuzione delle cose con le sue istruzioni / costanti più grandi e le cache L1, ma entrambi sono pieni di cose, entrambi usano la compressione del colore ove possibile ed entrambi hanno molti modelli GPU personalizzati nell'accesso alla memoria e utilizzato per massimizzare la larghezza di banda.

Triangoli, trame e pixel

Quindici anni fa, i produttori di GPU hanno fatto molto su quanti triangoli sono in grado di gestire i loro chip, sul numero di elementi di texture che possono essere filtrati per ciclo e sulla capacità delle unità di output di rendering (ROP). Questi aspetti sono ancora importanti oggi, ma l'attenzione è molto più sul lato dell'esecuzione poiché le tecnologie di rendering 3D richiedono più prestazioni di elaborazione che mai.

Tuttavia, solo per sottolineare che non c'è una differenza immediatamente evidente tra Navi e Turing in queste aree, vale ancora la pena esplorare le unità di texture e le ROP. In entrambe le architetture, le unità di trama possono gestire e recuperare 4 elementi di trama, filtrarli sconosciuti in un singolo elemento e memorizzarli nella cache tutti in un ciclo di clock (ignorando i loop di clock aggiuntivi presi per recuperare i dati dalla memoria locale).

La disposizione di ROP / RB è leggermente diversa tra Navi e Turing, ma non troppo: il chip AMD ha 4 RB per ACE e ognuno può produrre 4 pixel miscelati per ciclo di clock; A Turing, ogni GPC ha due RB, ciascuno con 8 pixel all'ora. Il conteggio ROP della GPU è davvero una misura di questa velocità di output dei pixel, quindi un chip Navi completo produce 64 pixel all'ora e TU102 96 completo (ma ricorda che questo è un chip più grande).

Ci sono meno informazioni sul lato triangolare delle cose. Quello che sappiamo è che Navi fornisce ancora un massimo di 4 primitive per ciclo di clock (1 per ACE), ma non c'è più nulla sul fatto che AMD abbia risolto il problema con questo problema. Shader primitivi. Questa era una caratteristica altamente propagandata di Vega e consentiva ai programmatori di avere molto più controllo sulle primitive in modo che l'efficienza primitiva potesse essere aumentata di 4 fattori. funzionalità rimossa dai driver Il prodotto è rimasto inattivo poco dopo il suo lancio e da allora.

In attesa di ulteriori informazioni su Navi, non sarebbe saggio speculare ulteriormente. Turing gestisce anche 1 primitiva all'ora per GPC (cioè fino a 6 per la GPU TU102 completa) nei motori raster, ma anche Mesh ShaderOffre le stesse funzionalità dei Primitive Shader di AMD; Direct3D non è un set di funzionalità OpenGL o Vulkan, ma può essere utilizzato tramite estensioni API.

Questo sembra dare a Turing un vantaggio su Navi in ​​termini di gestione di triangoli e primitive, ma attualmente non ci sono abbastanza informazioni precise di pubblico dominio.

Non si tratta solo di unità di applicazione

Ci sono altri aspetti di Navi e Turing che vale la pena confrontare. Per cominciare, entrambe le GPU sono dotate di display e motori multimediali altamente avanzati. Il primo elabora l'output al monitor, il secondo codifica e decodifica i flussi video.

Come ci si aspetterebbe da un nuovo design della GPU 2019, il motore di visualizzazione di Navi offre risoluzioni molto elevate a frequenze di aggiornamento elevate e offre supporto HDR. Visualizza compressione flusso (DSC) è un algoritmo di compressione con perdita rapida che consente di trasmettere risoluzioni del genere 4K + con frequenze di aggiornamento superiori a 60 Hz su una connessione DisplayPort 1.4; Fortunatamente, il deterioramento della qualità dell'immagine è molto piccolo al punto da considerare il DSC quasi privo di perdite.

Turing supporta anche DisplayPort con connessioni DSC, ma la combinazione supportata di alta risoluzione e frequenza di aggiornamento è leggermente migliore di Navi: 4K HDR a 144 Hz - il resto è lo stesso.

Il motore multimediale di Navi è moderno quanto il motore di visualizzazione e Codifica video avanzata (H.264) e Codifica video ad alta efficienza (H.265), sempre ad alte risoluzioni e bit rate elevati.

Il motore video di Turing è più o meno lo stesso di Navi, ma il supporto per la codifica 8K30 HDR potrebbe cambiare l'equilibrio a favore di Turing per alcune persone.

Ci sono altri aspetti da confrontare (ad esempio, l'interfaccia PCI Express 4.0 di Navi o NV Link di Turing), ma indipendentemente da come sono vestiti e commercializzati, sono davvero piccoli pezzi dell'architettura complessiva. Questo perché per la stragrande maggioranza dei potenziali utenti queste caratteristiche uniche non saranno importanti.

Confronto like-for-like

Questo articolo è un'osservazione della progettazione architettonica, delle caratteristiche e delle funzionalità, ma avere un confronto diretto delle prestazioni sarebbe un buon modo per completare tale analisi. Tuttavia, accoppiare il chip Navi su una Radeon RX 5700 XT in una GeForce RTX 2080 Ti con il processore Turing TU102 in una GeForce RTX 2080 Ti non sarebbe chiaramente giusto considerando che quest'ultima è quasi il doppio del numero di unità shader combinate. Tuttavia, esiste una versione del chip Turing che può essere utilizzata per un confronto, ed è quella che si trova nella GeForce RTX 2070 Super.

  Radeon RX 5700 XT GeForce RTX 2070 Super
GPU | Architettonico Navi 10 | rDNA TU104 | Turing
processi 7 nm TSMC TSMC a 12 nm
Area stampo (mm2) 251 545
Transistor (miliardi) 10.3 13.6
Blocca profilo 2 SE | 4 ACE | 40 PB 5 GPC | 20 TPC | 40 SM
Shader core combinati 2560 SP 2560 MIRACOLI
TMU 160 160
ROPS 64 64
Orologio di base 1605 MHz 1605 MHz
Orologio di gioco 1755 MHz N / A
Boost ora 1905 MHz 1770 MHz
Memoria GDDR6 da 8 GB a 256 bit GDDR6 da 8 GB a 256 bit
Banda di memoria 448 GBps 448 GBps
Thermal Design Power (TDP) 225 Watt 215 W.

Vale la pena notare che l'RTX 2070 Super non è un chip TU104 "completo" (uno dei GPC è disabilitato), quindi tutti questi transistor 13.6 sono inattivi, il che significa che i chip sono più o meno gli stessi in termini di numero di transistor. A prima vista, le due GPU sembrano molto simili, soprattutto se si considerano solo unità shader, TMU, ROP e sistemi di memoria principale.

Nel processore Nvida, un SM può gestire 32 warp simultanei e con ogni warp di 32 thread, una GeForce RTX 2070 Super completamente caricata può funzionare su 40.960 thread sull'intero chip; Per Navi, una CU SIMD32 può ricevere 16 onde per ALU e ciascuna onda è di 32 fili. Pertanto, la Radeon RX 5700 XT può anche essere imballata fino a 40.960 thread. Potrebbe sembrare che questo li renda esattamente qui, ma data la diversa disposizione dei CU / SM e il vantaggio di Nvidia con l'elaborazione simultanea INT e FP, il risultato dipenderà in gran parte dal codice eseguito.

Che effetto avrà questo sulle varie prestazioni del gioco, perché il codice di un motore 3D favorirà una build rispetto a un'altra a seconda del tipo di istruzioni che vengono inviate di routine alla GPU. Questo, testato due schede grafiche:

Tutti i giochi utilizzati nel test sono stati programmati per l'architettura GCN di AMD direttamente per PC dotati di Radeon o tramite GPU GCN presenti su PlayStation 4 o Xbox One. È possibile che alcuni dei lanci recenti siano preparati per le modifiche di RDNA, ma le differenze nei risultati di confronto sono più probabili a causa dei motori di rendering e del modo in cui le istruzioni ei dati vengono elaborati.

Allora cosa significa tutto questo? Un'architettura è davvero migliore di un'altra? Turing offre sicuramente più capacità di Navi grazie a Tensor e RT Cores, ma quest'ultimo sicuramente compete in termini di prestazioni di rendering 3D. Le differenze riscontrate nei 12 esempi di gioco non sono sufficientemente precise per dare un giudizio finale.

E questa è una buona notizia per noi.

Ultime parole

Piani Navi di AMD è stato annunciato Miravano al lancio del 2018 nel 2016 e anche se non hanno detto molto. Quando quella data va e viene carta stradale cambiato tuttavia, era chiaro che Navi sarebbe stato costruito in un nodo di processo a 7 nm e il progetto si sarebbe concentrato sul miglioramento delle prestazioni.

Questo è stato sicuramente il caso e, come abbiamo visto in questo articolo, AMD ha apportato modifiche all'architettura per consentire a Nvidia di competere con le sue offerte equivalenti. Il nuovo design è più che vantaggioso per gli utenti di PC, poiché sappiamo che Sony e Microsoft useranno una variante del chip nel prossimo periodo. Playstation 5 ve sonraki xbox.

Se torni all'inizio di questo articolo e guardi di nuovo il design strutturale di Shader Motors, la dimensione totale del die e il numero di transistor, c'è chiaramente spazio per un chip "grande Navi" per raggiungere il picco. ultima scheda grafica; AMD ha praticamente confermato che questo dovrebbe far parte dei suoi piani attuali e mirare a migliorare l'architettura e il processo di produzione nei prossimi due anni.

Ma quali sono i piani per Nvidia, Turing e il suo successore? Sorprendentemente, poco è stato confermato dalla società. Nel 2014, Nvidia Roadmap GPU aggiornata Pianificazione dell'architettura Pascal per il lancio del 2016 (e raggiungimento di tale obiettivo). Nel 2017, Tesla ha annunciato il V100È stato questo design a far emergere Turing nel 2018, utilizzando l'architettura Volta.

Da allora, le cose sono state piuttosto tranquille e abbiamo dovuto fare affidamento su voci e frammenti di notizie, che spesso dicono la stessa cosa: la prossima architettura di Nvidia si chiamerà Ampere, Prodotto da Samsung Utilizza il nodo di processo 7nm ed è previsto per il 2020. Oltre a questo, non c'è nient'altro da continuare. È improbabile che il nuovo chip rompa la tradizione concentrandosi su unità di esecuzione scalari, o è improbabile che lasci cadere aspetti come Tensor Core poiché ciò causerà significativi problemi di compatibilità con le versioni precedenti.

Tuttavia, possiamo fare alcune previsioni ragionevoli su come sarà la prossima GPU Nvidia. L'azienda ha investito una notevole quantità di tempo e denaro. Ray tracinge il suo supporto solo nei giochi aumentare; Pertanto, possiamo aspettarci di vedere un miglioramento nel core RT in termini di capacità o numeri per SM. Se uno 7 nm nodo di processo Se è vero, Nvidia punterà probabilmente alla riduzione della potenza piuttosto che all'aumento diretto della velocità di clock in modo da poter aumentare il numero di GPC. È anche possibile saltare 7 nm e avviare Nvidia. Dritto per 5 nm Per ottenere un vantaggio su AMD.

A quanto pare AMD e Nvidia, scheda grafica discreta Mercato di Intel, poiché sappiamo che stanno progettando di rientrare in questo settore, Chiama 20 anni. Questo nuovo prodotto (attualmente Xe's) Potrà competere allo stesso livello di Navi e Turing.

Nel frattempo, Intel è sopravvissuta al mercato delle GPU per questi due decenni realizzando grafica integrata per le sue CPU. L'ultima GPU di Intel Gen 11È simile all'architettura AMD in quanto utilizza ALU vettoriali in grado di gestire dati FP32 e INT32, ma non sappiamo se le nuove schede grafiche saranno un'evoluzione diretta di questo design.

Quel che è certo è che i prossimi anni saranno molto interessanti visto che tre colossi delle strutture in silicio continuano a lottare per i nostri portafogli. Nuovi progetti e architetture GPU metteranno alla prova i numeri dei transistor, le dimensioni della cache e le proprietà degli shader; Navi e RDNA sono i più recenti e hanno dimostrato che ogni passo in avanti può fare una piccola differenza.

Scorciatoie per lo shopping:
  • GeForce RTX 2070 Super nitida Amazon
  • GeForce RTX 2080 Super nitida Amazon
  • GeForce RTX 2080 Ti aperta Amazon
  • Radeon RX 5700 XT accesa Amazon
  • Radeon RX 5700 aperta Amazon
  • GeForce RTX 2060 Super nitida Amazon
  • GeForce GTX 1660 Super chiara Amazon

Questo articolo è stato originariamente pubblicato il 7 agosto 2019. Nell'ambito della nostra iniziativa #ThrowbackTh Thursday, abbiamo rivisto e bloccato un po '.