Garima Kochhar, Deepthi Cherlopalle, Joshua Weage. HPC en AI Innovation Lab, oktober 2019
Niet van toepassing
In de HPC-wereld van vandaag behoeft AMD's nieuwste generatie EPYC-processor met de codenaam Rome nauwelijks introductie. We hebben de afgelopen maanden systemen in Rome geëvalueerd in het HPC en AI Innovation Lab en Dell Technologies heeft onlangs servers aangekondigd
die deze processorarchitectuur ondersteunen. In deze eerste blog in de Rome-serie bespreken we de processorarchitectuur van Rome, hoe deze kan worden afgestemd op HPC-prestaties en de eerste microbenchmarkprestaties. In volgende blogs worden de prestaties van applicaties beschreven op het gebied van CFD, CAE, moleculaire dynamica, weersimulatie en andere toepassingen.
Rome is AMD's 2e generatie EPYC CPU en vernieuwt hun 1e generatie Napels. Vorig jaar bespraken we Napels in deze blog .
Een van de grootste architectonische verschillen tussen Napels en Rome die HPC ten goede komt, is de nieuwe IO-matrijs in Rome. In Rome is elke processor een multi-chippakket dat bestaat uit maximaal 9 chiplets , zoals weergegeven in afbeelding 1. Er is één centrale 14nm IO-matrijs die alle IO- en geheugenfuncties bevat: denk aan geheugencontrollers, Infinity Fabric-koppelingen binnen de socket en connectiviteit tussen sockets, en PCI-e. Er zijn acht geheugencontrollers per socket die acht geheugenkanalen ondersteunen met DDR4 bij 3200 MT/s. Een single-socket server ondersteunt maximaal 130 PCIe Gen4-lanes. Een systeem met twee sockets ondersteunt maximaal 160 PCIe Gen4-banen.
(Afbeelding 1Rome multi-chip pakket met één centrale IO die en maximaal acht-core dies)
Rondom de centrale IO-matrijs bevinden zich maximaal acht 7nm-kernchiplets. De kernchiplet wordt een Core Cache-matrijs of CCD genoemd. Elke CCD heeft CPU-cores op basis van de Zen2-microarchitectuur, L2-cache en 32 MB L3-cache. De CCD zelf heeft twee Core Cache Complexes (CCX), elke CCX heeft maximaal vier cores en 16MB L3-cache. Figuur 2 toont een CCX.
(Afbeelding 2 : Een CCX met vier cores en gedeelde 16 MB L3-cache)
De verschillende Rome CPU-modellen hebben een verschillend aantal cores,
maar hebben allemaal één centrale IO-die.
Aan de bovenkant bevindt zich een CPU-model met 64 cores, bijvoorbeeld de EPYC 7702. De uitvoer laat ons zien dat deze processor 16 CCX'en per socket heeft, elke CCX heeft vier cores zoals weergegeven in Figure.3 en 4, wat 64 cores per socket oplevert. 16MB L3 per CCX, d.w.z. 32MB L3 per CCD, geeft deze processor een totaal van 256MB L3 cache. Houd er echter rekening mee dat de totale L3-cache in Rome niet door alle kernen wordt gedeeld. De L3-cache van 16 MB in elke CCX is onafhankelijk en wordt alleen gedeeld door de cores in de CCX, zoals weergegeven in afbeelding 2.
Een CPU met 24 cores, zoals de EPYC 7402, heeft 128 MB L3-cache. De uitvoer in Figuur 3 en 4 illustreert dat dit model drie cores per CCX heeft, en 8 CCX per socket.
(Afbeelding 3 en 4 lstopo-uitvoer voor CPU's met 64 en 24 cores)
Ongeacht het aantal CCD's is elke Rome-processor logisch verdeeld in vier kwadranten met CCD's zo gelijkmatig mogelijk verdeeld over de kwadranten en twee geheugenkanalen in elk kwadrant. De centrale IO-matrijs kan worden gezien als een logische ondersteuning van de vier kwadranten van de socket.
De centrale IO-dobbelsteen in Rome helpt de geheugenlatentie te verbeteren ten opzichte van die gemeten in Napels. Bovendien kan de CPU worden geconfigureerd als één NUMA-domein, waardoor uniforme geheugentoegang voor alle cores in de socket mogelijk is. Dit wordt hieronder toegelicht.
Met de vier logische kwadranten in een Rome-processor kan de CPU worden opgedeeld in verschillende NUMA-domeinen. Deze instelling wordt NUMA per socket of NPS genoemd.
Indien beschikbaar wordt NPS4 aanbevolen voor HPC, omdat dit naar verwachting de beste geheugenbandbreedte en de laagste geheugenlatentie biedt en onze applicaties meestal NUMA-bewust zijn. Als NPS4 niet beschikbaar is, raden we de hoogste NPS aan die door het CPU-model wordt ondersteund: NPS2 of zelfs NPS1.
Gezien de vele NUMA-opties die beschikbaar zijn op de platforms in Rome, biedt het PowerEdge BIOS twee verschillende methoden voor core-opsomming onder MADT-opsomming. Lineaire opsommingsnummers worden in volgorde genummerd, waarbij één CCX, CCD, socket wordt gevuld voordat naar de volgende socket wordt gegaan. Op een 32c CPU bevinden de cores 0 t/m 31 zich op de eerste socket, cores 32-63 op de tweede socket. Round robin-opsomming nummert de kernen in NUMA-regio's. In dit geval bevinden zich even genummerde cores op de eerste socket, oneven genummerde cores op de tweede socket. Voor de eenvoud raden we lineaire opsomming aan voor HPC. Zie afbeelding 5 voor een voorbeeld van lineaire kernopsomming op een 64c-server met twee sockets die is geconfigureerd in NPS4. In de afbeelding is elke doos met vier kernen een CCX, elke set van aaneengesloten acht kernen is een CCD.
(Afbeelding 5 Lineaire kernopsomming op een dual-socket systeem, 64c per socket, NPS4-configuratie op een 8 CCD CPU-model)
Een andere Rome-specifieke BIOS-optie heet Preferred IO Device. Dit is een belangrijke afstemknop voor InfiniBand-bandbreedte en berichtsnelheid. Hiermee kan het platform prioriteit geven aan verkeer voor één IO-apparaat. Deze optie is beschikbaar op Rome-platforms met één socket en twee sockets en het InfiniBand-apparaat in het platform moet worden geselecteerd als het voorkeursapparaat in het BIOS-menu om de volledige berichtsnelheid te bereiken wanneer alle CPU-cores actief zijn.
Net als Napels ondersteunt Rome ook hyper-threadingof logische processor. Voor HPC laten we dit uitgeschakeld, maar sommige applicaties kunnen baat hebben bij het inschakelen van de logische processor. Kijk voor onze volgende blogs over toepassingsstudies in de moleculaire dynamica.
Net als Napels staat Rome ook CCX toe als NUMA-domein. Met deze optie wordt elke CCX weergegeven als een NUMA-knooppunt. Op een systeem met dual-socket CPU's met 16 CCX'en per CPU worden met deze instelling 32 NUMA-domeinen weergegeven. In dit voorbeeld heeft elke socket 8 CCD's, d.w.z. 16 CCX. Elke CCX kan worden ingeschakeld als een eigen NUMA-domein, wat 16 NUMA-knooppunten per socket oplevert en 32 in een systeem met twee sockets. Voor HPC raden we aan CCX als NUMA-domein te laten staan bij de standaardoptie uitgeschakeld. Verwacht wordt dat het inschakelen van deze optie gevirtualiseerde omgevingen zal helpen.
Net als Napels staat Rome het systeem toe om het systeem in te stellen in de modus Performance Determinism of Power Determinism . Bij prestatiedeterminisme werkt het systeem met de verwachte frequentie voor het CPU-model, waardoor variabiliteit tussen meerdere servers wordt verminderd. Bij energiedeterminisme werkt het systeem met de maximaal beschikbare TDP van het CPU-model. Dit versterkt de variatie in het productieproces, waardoor sommige servers sneller kunnen zijn dan andere. Alle servers kunnen het maximale nominale vermogen van de CPU verbruiken, waardoor het energieverbruik bepalend is, maar er wel enige prestatievariatie tussen meerdere servers mogelijk is.
Zoals u van PowerEdge platforms mag verwachten, heeft het BIOS een meta-optie genaamd System Profile. Als u het systeemprofiel Geoptimaliseerd voor prestaties selecteert, wordt de turboboostmodus ingeschakeld, C-statussen uitgeschakeld en wordt de schuifregelaar determinisme ingesteld op Energiedeterminisme, geoptimaliseerd voor prestaties.
Veel van onze lezers zijn misschien meteen naar dit gedeelte gesprongen, dus we duiken er meteen in.
In het HPC en AI Innovation Lab hebben we een cluster met 64 servers in Rome opgebouwd dat we Minerva noemen. Naast het homogene Minerva-cluster hebben we nog een paar andere Rome CPU-samples die we hebben kunnen evalueren. Ons testbed wordt beschreven in tabel 1 en tabel 2.
(Tabel 1 Rome CPU-modellen geëvalueerd in dit onderzoek)
CPU | Cores per Socket | Config | Kloksnelheid | TDP |
---|---|---|---|---|
7702 | 64 quater | 4c per CCX | 2,0 GHz | 200 W |
7502 | 32 quater | 4c per CCX | 2,5 GHz | 180 W |
7452 | 32 quater | 4c per CCX | 2,35 GHz | 155 W |
7402 | 24 quater | 3c per CCX | 2,8 GHz | 180 W |
(Tabel 2 Testbed)
Component | Details |
---|---|
Server | PowerEdge C6525 |
Processor | Zoals weergegeven in Tabel.1 Dual-socket |
Geheugen | 256 GB, 16 x 16 GB, 3200 MT/s DDR4 |
Interconnect | ConnectX-6 Mellanox Infini Band HDR100 |
Besturingssysteem | Red Hat Enterprise Linux 7.6 |
Kern | 3.10.0.957.27.2.e17.x86_64 |
Schijf | 240 GB SATA SSD M.2-module |
Geheugenbandbreedtetests op Rome worden weergegeven in Afbeelding 6, deze tests zijn uitgevoerd in NPS4-modus. We hebben een geheugenbandbreedte van ~270-300 GB/s gemeten op onze dual-socket PowerEdge C6525 bij gebruik van alle cores in de server in de vier CPU-modellen vermeld in tabel 1. Wanneer slechts één core per CCX wordt gebruikt, is de bandbreedte van het systeemgeheugen ~9-17% hoger dan de bandbreedte die bij alle cores wordt gemeten.
De meeste HPC-workloads abonneren volledig op alle cores in het systeem of HPC-centra draaien in de modus met hoge doorvoer met meerdere taken op elke server. Daarom is de all-core geheugenbandbreedte de nauwkeurigere weergave van de geheugenbandbreedte en geheugenbandbreedte-per-coremogelijkheden van het systeem.
Afbeelding 6 toont ook de geheugenbandbreedte die is gemeten op het EPYC Naples-platform van de vorige generatie, dat ook acht geheugenkanalen per socket ondersteunde, maar draaide op 2667 MT/s. Het Rome-platform biedt 5% tot 19% betere totale geheugenbandbreedte dan Naples, en dit is voornamelijk te danken aan het snellere 3200 MT/s-geheugen. Zelfs met 64c per socket kan het Rome-systeem meer dan 2 GB/s/core leveren.
Bij vergelijking van de verschillende NPS-configuraties werd een ~13% hogere geheugenbandbreedte gemeten met NPS4 in vergelijking met NPS1, zoals weergegeven in afbeelding 7.
(Afbeelding 6 NPS4 STREAM Triad-geheugenbandbreedte met twee sockets)
(Afbeelding 7 NPS1 versus NPS2 versus NPS 4 geheugenbandbreedte)
Afbeelding 8 toont de single-core InfiniBand-bandbreedte voor unidirectionele en bidirectionele tests. Het testbed gebruikte HDR100 met een snelheid van 100 Gbps en de grafiek toont de verwachte prestaties van de lijnsnelheid voor deze tests.
Afbeelding 8 InfiniBand-bandbreedte (single-core)
Afbeelding 9 InfiniBand-berichtsnelheid (alle cores))
Vervolgens werden tests met de berichtsnelheid uitgevoerd met behulp van alle cores op een socket in de twee te testen servers. Wanneer Preferred IO is ingeschakeld in het BIOS en de ConnectX-6 HDR100-adapter is geconfigureerd als het voorkeursapparaat, is de all-core messagesnelheid aanzienlijk hoger dan wanneer Preferred IO niet is ingeschakeld, zoals weergegeven in Afbeelding 9. Dit illustreert het belang van deze BIOS-optie bij het afstemmen op HPC en vooral op de schaalbaarheid van applicaties met meerdere knooppunten.
De micro-architectuur van Rome kan 16 DP FLOP/cyclus afschrijven, het dubbele van die van Napels, dat 8 FLOPS/cyclus was. Dit geeft Rome 4x de theoretische piek FLOP's ten opzichte van Napels, 2x van de verbeterde floating-point-mogelijkheid en 2x van het dubbele aantal cores (64c versus 32c). Figuur 10 toont de gemeten HPL-resultaten voor de vier Rome CPU-modellen die we hebben getest, samen met onze eerdere resultaten van een systeem in Napels. De Rome HPL-efficiëntie wordt genoteerd als de procentuele waarde boven de balken in de grafiek en is hoger voor de lagere TDP CPU-modellen.
Tests werden uitgevoerd in de modus Energiedeterminisme en er werd een delta van ~5% in prestaties gemeten over 64 identiek geconfigureerde servers. De resultaten hier vallen dus binnen die prestatieband.
(Afbeelding 10 Eén server HPL in NPS4)
Vervolgens werden HPL-tests met meerdere knooppunten uitgevoerd en die resultaten zijn uitgezet in figuur 11. De HPL-efficiëntie voor EPYC 7452 blijft boven de 90% op een schaal van 64 knooppunten, maar de dalingen in efficiëntie van 102% naar 97% en terug naar 99% moeten verder worden geëvalueerd
(Afbeelding 11 HPL met meerdere knooppunten, dual-socket EPYC 7452 via HDR100 InfiniBand)
De eerste prestatiestudies op servers in Rome tonen de verwachte prestaties voor onze eerste reeks HPC-benchmarks. BIOS-afstemming is belangrijk bij het configureren voor de beste prestaties, en afstemmingsopties zijn beschikbaar in ons BIOS HPC-workloadprofiel dat in de fabriek kan worden geconfigureerd of kan worden ingesteld met behulp van hulpprogramma's voor systeembeheer van Dell EMC.
Het HPC en AI Innovation Lab hebben een nieuw PowerEdge-cluster met 64 servers in Rome: Minerva. Houd deze pagina in de gaten voor volgende blogs die applicatieprestatiestudies op ons nieuwe Minerva-cluster beschrijven.