Nu kan "simulering" betyda rätt mycket, men flaskhalsen för de flesta simuleringar och vetenskapliga beräkningar brukar vara en eller båda av flyttalskapacitet och minnesbandbredd. De flesta vetenskapliga problem kan formuleras m.h.a. av matriser.
Givet ovan, hur är denna 32-kärninga CPU som beskrivs i denna artikel en dröm?
Börjar vi med rå flyttalskapacitet så matchar en 32-kärnors TR @ 3,5 GHz endast en GTX 1050 i 32-bitars flyttal. Finns en anledning varför alla superdatorer byggd de senaste åren har någon form av acceleratorkort i form av GPU, Xeon Phi eller liknade.
32-bitars flyttal duger utmärkt till saker som rendering. Där var tidigare GPGPU ett problem då komplexa scener inte fick plats i VRAM, ett problem som försvunnit med Pascal och Vega då båda dessa kan mappa upp RAM från CPU och använda VRAM som cache.
Men för simuleringar och liknande vill man ofta ha 64-bitars flyttal, då trillar alla konsument GPUer av banan, en 32-kärnors TR @ 3,5 GHz har mer än dubbelt så hög kapacitet jämfört med Titan Xp.
Grejen här är att just vetenskapliga beräkningar är en av de nischer där Intels HEDT-plattform verkligen skiner, räcker faktiskt med en i7-7820X för att matcha teoretisk kapacitet hos en 32-kärnors TR @ 3,5 GHz (kolla in t.ex. SGEMM resultaten i Geekbench 4 eller Matlab-benchmarks där både SGEMM och DGEMM varianter finns, S/DGEMM=Single/Double precision floating General Matrix Multiply).
Epyc har inte haft speciellt mycket framgång som generell server, men finns nischer där man lyckats bra. En sådan är HPC för arbetslaster som skalar väl över kluster (en Epyc paket är ju en form av kluster av fyra 8-kärniga Zen CPUer), där är det en fördel att man har 4x dual-channel RAM då sådana laster inte ser någon fördel med en monolitiskt minnesbuss. Intel får där "bara" sex kanaler mot RAM.
Problemet är att denna TR modell i artikeln inte bara är en Epyc med hälften så mycket minneskanaler, två CPU-kretsar kommer ju bara nå RAM via inter-CPU länkar, något som kommer påverka både RAM och I/O-latens negativt.
Dagens TR har faktiskt högre bandbredd mellan CPU-kretsarna jämfört med Epyc. Detta då varje Zen CPU har tre länkar för att ansluta till andra CPU-kretsar. I Epyc går varje sådan länk till en av de tre andra CPU-kretsarna, i TR används två länkar för att koppla ihop de två CPU-kretsarna så man har ungefär dubbla bandbredden.
I en TR med fyra CPU-kretsar och endast två minneskontroller lär konfigurationen i Epyc vara mindre optimal, gissar att man kommer dra länkar på följande sätt
+-+ +-+
|RAM|###|C|===|C|
+-+ +-+
| |
| |
+-+ +-+
|C|===|C|###|RAM|
+-+ +-+
d.v.s. två par av CPU-kretsar har två Inifinity-fabric länkar och detta par är knutna till samma RAM-bank (samma tillhör samma NUMA-zon sett från operativsystemets sida). Problemet är att man tappar den fördel Epyc har då TR "bara" har 2 st dual-channel minneskanaler.
Tror den är den minst dåliga konfigurationen som är möjlig, fråga är bara: förutom att bli en majestätisk Cinebench-dragster, finns det något denna 32-kärniga CPU kommer vara vettig att använda till givet dess konstruktion?
Om målet är att bygga sin egen HPC och givet att förhoppningsvis ingen väljer att köra desktop Windows på mer än åtta kärnor (redan vid sex kärnor ser man att desktop Windows börjar falla efter Linux i t.ex. Geekbench 4 multithread resultat), varför inte köpa en Cavium Thunder X2? $1800 för toppmodellen, en CPU-modell Cray valt som bas till deras Rolls Royce superdator. Där får man en monolitisk 32 kärnor, 128 trådar CPU med 8 minneskanaler.
ThunderX2 är rätt värdelös som desktop-dator p.g.a. relativt låg prestanda per CPU-tråd (dock x86 nivå sett till prestanda per kärna). Fast det gäller ju för alla server CPUer med många kärnor, de är sämre för det vi kör på skrivbordet jämfört med AMD/Intels toppmodeller för konsumentbruk (R7-2700X och i7-8700K).
Vidare blir fördelen med att köra 64-bitars ARM över 64-bitars x86 större ju fler kärnor man stoppar i. Dels drar x86 kärnorna mer ström, men framförallt har 64-bitars ARM en s.k. minneskonsistensmodell som bättre lämpar sig för multitrådade program. x86 har en modell som var vettig när man har några enstaka kärnor, men den blir att mer en kvarnsten ju fler kärnor man stoppar in.
Så för den som anser sig redan idag ha nytta av 32C/128T, varför inte en ARM-server körandes Linux? Finns för leverans under $2000 redan nu!