AMD Ryzen Threadripper

Under AMD:s avtäckande av Threadripper i Los Angeles i slutet av juli berättade företagets representanter att designen har sitt ursprung i ett enkelt uppdrag som VD:n Lisa Su gav ingenjörerna – "Designa en riktigt bra serverprocessor". Under arbetets gång insåg gruppen att egenskaperna som började växa fram kunde appliceras på entusiastsegmentet också.

TR_die_ovan.jpg

Denna serverprocessor skulle använda Zen-arkitekturen som då fortfarande var under utveckling. Zen-baserade processorer kom att använda sig av så kallade CCX-kluster med fyra kärnor. De första processorerna i Ryzen 7-serien skulle använda två sådana CCX-kluster för totalt åtta kärnor. Processorer som använder mer än åtta kärnor vävs samman via kommunikationslagret Infinity Fabric.

En krets med två CCX-kluster kallas Zeppelin och ingenjörerna hos AMD insåg att om de kombinerade fyra sådana i de planerade serverprocessorerna i Naples-serien kunde de göra detsamma för entusiastmarknaden (HEDT). Threadripper valdes som namn för att det reflekterar processorernas främsta styrka, och för att det fick ingenjörerna "att fnittra".

Ryzen Threadripper 1950X är toppmodellen som skryter med totalt 16 kärnor och använder alltså två Zeppelin-kretsar. Det är dubbelt upp mot vad Ryzen 7-processorerna hyser, och Ryzen Threadripper-processorerna är således stora inte bara sett till antalet kärnor utan även i ren fysisk storlek. Trots komplexiteten har samtliga processorer en gemensam värmeeffekt (TDP) på 180 watt.

CPU_portfolio.jpg
HEDT_priskrig.jpg
Ryzen_rollout.jpg
TR_purepower.jpg
Bestdies.jpg
Energieffektivitet.jpg
Zen_IPC.jpg
ZENvsIntel_specs.jpg

Det kan jämföras med motsvarande processorer från Intels senaste produktfamilj Skylake-X. De produkter som finns ute på marknaden nu går från 4 kärnor och 8 trådar till som mest 10 kärnor och 20 trådar i form av Intel Core i9-7900X. Samtliga av dessa har ett TDP på 140 watt, medan kommande varianter med 14 eller fler kärnor ska ligga på 165 W.

Att nå 180 watt på en HEDT-klassad processor med så mycket som 16 kärnor är dock ett rejält steg framåt för AMD vars tidigare Bulldozer-baserade processorfamiljer var notoriska strömslukare. Det blir möjligt tack vare Zen-arkitekturens Pure Power-teknik, en mängd sensorer som övervakar kretsarnas generella tillstånd för att avgöra vad som kan klockas ner eller upp.

Nästa generations Hypertransport

Samtliga processorer i Ryzen-familjen har kapacitet för att utrustas med flera så kallade CCX-kluster och är därmed alla utrustade med stöd för något som kallas Infinity Fabric. AMD kallar själva detta för en vidareutveckling av Hypertransport för synkroniserad kommunikation inom och mellan kretsar.

Jämfört med Hypertransport, som var en teknik som kopplade samman processorsocklar, är Infinity Fabric en modern och mer avancerad kommunikationsväv där sensorer övervakar kommunikationen mellan kretsar och primärminnet. Kommunikationen över datakanaler kontrolleras via kontrollkanaler, likt hur mjukvarudefinierade nätverk (SDN) fungerar.

Infinityfabric.jpg
Infinityfabric2.jpg
Infinityfabric_skalbarhet.jpg
Infinityfabric_latens.jpg

Inifinity Fabric har designats för att kunna koppla samman och synkronisera kommunikation mellan olika typer av kretsar, även komponenter från tredje part ska kunna anslutas. Inom Ryzen- och Epyc-familjen används Infinity Fabric för att länka samman processorenheter inom Zeppelin-kretsar, men även länka samman flera sådana kluster och cacheminnen.

Processorerna länkas även samman och synkroniseras med primärminnet, och Infinity Fabric körs i samma klockhastighet som primärminnet för att undvika fördröjningar i kommunikationen. Infinity Fabric används även i andra produkter, exempelvis för synkroniserad kommunikation i AMD:s nya grafikkortsgeneration Vega.

Enligt AMD ska det gemensamma gränssnittet i Infinity Fabric göra det möjligt att skala upp prestanda linjärt i takt med hur många processorkärnor eller processorsocklar som används. Ett system med två socklar och 64 kärnor ska alltså se dubbelt så hög prestanda i flertrådade tillämpningar jämfört med en sockel och 32 kärnor.

Infinity Fabric används dock inte bara till synkroniserad kommunikation, utan är även utrustat med sensorer som mäter av de olika kretsarnas tillstånd och avgör den optimala klockfrekvensen baserat på detta. AMD säger att endast fem procent av det bästa kislet blir utvalt som Threadripper-processorer så att dessa kan köras så optimalt som möjligt.

UMA, NUMA och latenser

I teorin låter detta väldigt bra, men Infinity Fabric är också något av en kompromiss för att AMD ska kunna bygga processorer med rejäl kapacitet utan att bygga in allt på samma krets. Latensen i kommunikationen mellan kärnor i en Zeppelin-krets är relativt låg, men när kommunikationen sker mellan flera Zeppelin-kretsar kan den bli flera gånger högre än hos Intels motsvarande Xeon-processorer.

Strukturen påverkar även minnesprestanda då fyra minneskanaler är uppdelade mellan två Zeppelin-kretsar i Ryzen Threadripper. Det innebär att om arbetsbelastningen håller sig inom en av dessa två kretsar får den endast tillgång till dess två minneskanaler, och får halverad minnesbandbredd jämfört med vad processorn erbjuder med fyra minneskanaler.

Distributedmode_UMA.jpg
Localmode_NUMA.jpg
UMAvsNUMA.jpg

Med Ryzen Threadripper, och Epyc, introducerar AMD en alternativ modell för minnesåtkomst. Unified Memory Architecture (UMA) ger användaren möjligheten att använda en bredare minnesåtkomst där transaktioner sprids ut över tillgänglig minneskapacitet. Detta ger bättre bandbredd, men med högre latenser eftersom anropen sprids ut över minnesmodulerna och CCX-klustren.

Om lägsta möjliga latens är av högsta prioritet kan användaren istället välja att använda den traditionella åtkomstmetoden Non-Uniform Memory Access (NUMA) eller lokalt minnesläge. Två CCX-kluster använder då dess två minneskanaler för att få tillgång till de lokalt anslutna minnesmodulerna, vilket ger lägre bandbredd men också lägre latens. Det blir således antingen eller, något som inte gäller Intels Xeon-processorer.

Kompromisser gäller även åtkomst till L3-cacheminnet, där de angivna 32 MB för Ryzen Threadripper egentligen är 8 MB per CCX-kluster. Så länge cache-anrop håller sig inom dessa 8 MB är latensen låg, lägre än hos Intels motsvarande Xeon-processorer, men så fort anropen överskrider 8 MB måste anropen gå mellan kluster och då blir latensen nästan fyra gånger högre.