Chiplet-baserad GPU: arkitektur, organisation och motiv

Chiplet-baserade grafikprocessorer har funnits länge, särskilt sedan ett av problemen båda NVIDIA och AMD har mött de senaste åren är att skala sina GPU: er bortom fysiska gränser. . Hur kommer de att se ut och vad är motivationen för detta nya sätt att utforma GPU: er?

Om vi ​​gör en observation av de grafikprocessorer som lanserades på senare tid både av AMD, men särskilt av NVIDIA, kan vi se att området de ockuperar ökar och om det för några år sedan GPU på mer än 400 mm2 sågs som något stort, nu har vi dem över 600 mm2.

Chiplet-baserad GPU

Denna tendens innebär att det finns en risk att nätets gräns nås vid ett visst ögonblick, nämnda gräns är gränsområdet som ett chip kan ha i en given tillverkningsnod och på ett farligt sätt, och saker blir komplicerade om vi urskillningslöst öka antalet kärnor som utgör en GPU.

Liknande av stationer och tåg

Estación-Tren

Antag att vi har ett järnvägsnät med flera tågstationer, var och en av dem är en processor och tågen är datapaket som skickas.

Om vårt järnvägsnät innehåller ett ökande antal stationer kommer vi självklart att behöva fler och fler spår och en mer komplex infrastruktur. Tja, i fallet med en processor är det detsamma eftersom att öka antalet element betyder att öka antalet kommunikationskanaler mellan de olika elementen.

Problemet är att dessa ytterligare tågspår också kommer att öka energiförbrukningen, så den som är dedikerad till att utforma järnvägsnätet behöver inte bara ta hänsyn till hur många spår som kan placeras i infrastrukturen utan också energiförbrukningen för samma.

Moores lag skala inte så mycket som du tror

Escala Dennard

Enligt Moores lag fördubblades densiteten i antalet transistorer per område regelbundet varje x gång, detta åtföljdes av Dennard-skalan, som berättade för oss vilken klockhastighet de kan skala med varje ny tillverkningsnod. Den ursprungliga Dennard-skalan ändrade sitt mått från 65 nm-noden och framåt.

Problemet kommer när vi ökar antalet element / tåg och kommunikationsvägar, vi kan placera dubbelt så många element men vad vi inte kan göra är att se till att vi har den nödvändiga bandbredden för att kommunicera alla dessa element samtidigt under samma förbrukning. givet, vilket är omöjligt och detta begränsar antalet kärnor, när det gäller GPU: er antalet beräkningsenheter.

PCB-routing

Lösningen som alltid har tagits? Istället för att lägga till fler element är det som har gjorts att göra dessa alltmer komplexa, till exempel när det gäller GPU: er är det vägen som NVIDIA tog från Turing, istället för att öka antalet SM jämfört med Pascal. Vad han gjorde var att lägga till element som RT Cores, Tensor Cores och göra djupa förändringar i enheterna, eftersom att öka antalet kärnor innebär att öka antalet sammankopplingar.

Så vi befinner oss med problemet med energikostnaden för dataöverföring / tåg, med varje ny tillverkningsnod kan vi öka antalet element på ett chip men vi finner att överföringshastigheten vi behöver blir allt högre, vilket ökar energiförbrukningen, orsakar en stor del av den energikraft som vi ger till processorn går alltmer till dataöverföring istället för databehandling.

Bygga en GPU med chiplets från en känd

Tanken med en GPU-konstruktion av chiplets är att kunna bygga en GPU som inte kan tillverkas av en monolitisk konstruktion och därför baseras på ett enda chip, så området för en GPU byggd med chiplets måste vara större än vad som skulle tillåta gränsen för nätkanten, eftersom en GPU av denna typ inte skulle vara meningsfull.

Detta innebär att GPU: er som består av chiplets kommer att reserveras exklusivt för de högsta intervallen och det är möjligt att vi först kommer att se dem bara på marknaden för GPU för högpresterande dator, HPC, medan vi i hemmet är några år till med grafikprocessorer mycket enklare i konfiguration och därför monolitisk.

Navi 10-diagram

Vi har dock bestämt oss för att ta Navi 10-chipet med första generationens RDNA-arkitektur som ett exempel för att dekonstruera det och skapa vår GPU bestående av chiplets, främst för att det är av den senaste generationens GPU: er som vi har mest data om tabell. GPU: erna som AMD och / eller NVIDIA bygger kommer att ha mycket mer komplexitet än detta exempel, vilket är vägledande så att du har en mental bild av hur en GPU av denna typ skulle byggas.

Den första tanken är att varje chiplet är en Shader Array, som är de uppsättningar av element som finns på de rosa rutorna, som är anslutna till L1-cachen, medan vi ska lämna L2-cachen i ett separat centralt chip.

RDNA-chiplets 1

Men vi har inte hela GPU: n, eftersom vi saknar den centrala delen av den, som är kommandoprocessorn, vilken är en enda del som vi inte kommer att duplicera, så vi placerar den i den centrala delen av MCM.

RDNA-chiplets Etapa 2

När det gäller acceleratorerna kommer vi att placera dem i en annan chiplet, ansluten direkt till DMA-enheten i den centrala chipleten.

GPU -chip 3

När vi väl har delat upp GPU: n i flera delar, det som intresserar oss nu är kommunikationen med det externa minnet. Detta kommer att göras av Interposer, som kommer att ha minneskontrollen integrerad inuti. Eftersom Navi 10 använder ett 256-bitars, 8-chip GDDR6-gränssnitt, har vi beslutat att behålla den konfigurationen i vårt exempel.

GPU -chip

GPU baserad på chiplets och strömförbrukning

FFU

Gränssnittet som används för att kommunicera element från olika chiplets är AMD MCM är IFOP-gränssnittet, som har en energiförbrukning på 2 pJ / bit, om vi tittar på de tekniska specifikationerna ser vi att L2-cachen har en bandbredd på 1.95 TB / Det har en hastighet på 1905 MHz, vilket är ungefär 1024 byte, vilket fungerar för 16 gränssnitt om 64 byte / cykel, 32B / cykel per adress.

AMD IF-pj-bit

Den första versionen av Infinity Fabric använde gränssnitt på 32B / cykel med en förbrukning på 2 pJ / bit, men AMD förbättrades med 27%

IFOP-gränssnittet har en energiförbrukning på 1.47 pJ / bit, med en hastighet på 1333 MHz. Om gränssnittet låg på 1905 MHz skulle energiförbrukningen vara mycket högre eftersom det inte bara skulle öka klockhastigheten utan också spänningen, men låt oss anta att vår chipletversion av Navi 10 går med dessa 1333 MHz-hastigheter.

(1.33 * 10 ^ 12) * 8 bitar per byte * 1.47 pJ per bit = 1.56 * 10 ^ 13 pJ = 15.6 W

Även om 15.6 W kan tyckas vara en låg siffra för oss, kom ihåg att detta endast är förbrukningen av att överföra data från de perifera chipletterna med det centrala chiplet med en hastighet av 1333 MHz och att energiförbrukningen ökar kvadratiskt med klockhastigheten . och spänningen ökar också med detta.

Detta innebär att en stor del av strömförbrukningen går direkt till strömförbrukningen för kommunikationen mellan chiplets, vilket innebär att både AMD och NVIDIA måste lösa detta problem innan de använder sina chipbaserade GPU: er.

AMDs EHP som ett exempel på en chiplet-baserad GPU

EHP-chiplets

För några år sedan släppte AMD ett papper där det beskrivs en chipletbaserad processor med en extremt komplex GPU, där de pratade om konfigurationer av till exempel 320 Compute Units i 8 chiplets, vilket innebär 40 Compute Units per chiplet, motsvarande till en fullständig Navi 10.

Med andra ord, vi pratar om en konfiguration 8 gånger mer komplex, så tänk dig en konfiguration med åtta chipletter, var och en är som en Navi 8 / RDNA och körs med hastigheter över 10 GHz med enorm energiförbrukning.

X3D-zoom

Detta är anledningen till att AMD och NVIDIA har utvecklat teknologier som X3D och GRS, som är kommunikationsgränssnitt som har en energiförbrukning per överförd bit 10 gånger lägre än den nuvarande Infinity Fabric eller NVLink eftersom utan ett slags kommunikationsgränssnitt av det slag är inte möjligt framtiden för chipletbaserade GPU: er.