View Single Post
Old 25-11-2024, 19:42   #7
CrapaDiLegno
Senior Member
 
Iscritto dal: Jan 2011
Messaggi: 3959
La racconti eccome.
La differenza tra RDNA2 e RDNA3 sta solo nella capacità di quest'ultima di eseguire con le stesse ALU il doppio dei calcoli rispetto alla prima in FP16.
NON CI SONO UNITA' DEDICATE. Solo una ottimizzazione nel picco del calcolo FP16 (e solo di picco, nella realtà infatti non va il doppio), supporta finalmente i BF16 (che RDNA2 non supportava) e usa le istruzioni WMMA CHE NON USANO UNITA' MATRICIALI MA LE UNITA' VETTORIALI DEGLI SHADER.
Scrivo in maiuscolo così elimino ogni dubbio su qualche possibile male interpretazione di cose che evidentemente non conosci.
Leggi qui e comprendi come fa RDNA3 a eseguire le operazioni di moltiplicazioni matriciali: https://gpuopen.com/learn/wmma_on_rdna3/
Quando l'hai capito torna e di che ci sono ancora unità dedicate al calcoli AI.

Per quanto riguarda le unità RT anche qui è evidente che fai finta di non capire:
Nvidia ha le unità in parallelo perché le ha pensate e implementate così dal day one, ovvero con unità dedicate appositamente per supportare quel tipo di lavoro in collaborazione con il resto della pipeline, non in sostituzione o sacrificio di altre funzionalità durante il loro uso.
AMD non ha potuto pensare ad una cosa del genere, visto che per il raytracing in tempo reale aspettava forse di avere qualche centinaio di migliaia di shader. Ma è stata fregata dalle idee più lungimiranti di Nvidia, iniziate con le unità matriciali e poi quelle per l'RT. Due cose che vanno a braccetto se si vuole ottenere qualche risultato qualitativo e non cubetti colorati ad caxxum giusto per dire "Eh, ma sono realizzati con i raggi".
Per fare quello che ha fatto Nvidia non ci vuole certo un giorno. E neanche in mese. E neppure un anno. Però per evitare di presentarsi con il NULLA per 2 generazioni intere ha ben pensato di usare un vecchio metodo di calcolo (un antiquato metodo a dirla tutta) che è quello di modificare una unità a funzione fissa già esistenti per supportare qualche algoritmo semplice di calcolo. Come detto si era già tentato molto prima dell'arrivo degli shader unificati e programmabili.
Perché semplice? Perché altrimenti diventa una unità enorme e visto che non è bel pensata all'interno del flusso saranno comunque transistor sprecati (e già non sono pochi un RDNA). Inutile raddoppiare la dimensione se poi si ottiene un miglioramento del 10% su un già non brillante 30%.
E quale unità migliore per la modifica se non la TMU che è a diretto collegamento con la L2?
La pensata è stata molto buona. Ha permesso ad AMD di non fare la figura della pera cotta caduta dall'albero all'arrivo delle unità raytracing di Nvidia "solo" 2 anni prima. Con RDNA2 ormai finita alla presentazione di Turing, quella modifica dell'ultimo minuto è stato il massimo ottenibile.
Si sperava però che con RDNA3 facesse quello che doveva fare, ovvero mettere unità dedicate A FIANCO degli shader non dove capitava perché era il punto con più banda, ma così non è stato. C'è stato solo il giochino di mettere quanta più cache possibile addirittura tramite chiplet esterni e di ulteriormente portare i propri shader a funzionare come quelli delle concorrenza.
Ci penserà finalmente RDNA4 (credo stavolta senza l'idea balzana dei chiplet per i memory controller + cache)? Forse, si spera, giusto per cominciare a sistemare l'architettura come si deve in vista di UDNA tra un altro paio di anni abbondanti (così saranno 8 dall'introduzione di Turing).
Intanto però gli altri non stanno a guardare, Neanche la "disperata" Intel.
Anche lei ha unità RT e matriciali vere già dal primo giorno.
CrapaDiLegno è offline   Rispondi citando il messaggio o parte di esso
 
1