Artikkel skrevet av Varun Bawa, Savitha Pareek, & Ashish K Singh fra HPC og AI Innovation Lab i april 2019
Med lanseringen av 2. generasjons skalerbare prosessorer i Intel Xeon-prosessorserien® (arkitektur med kodenavn «Cascade Lake») har Dell EMC oppdatert 14. generasjons PowerEdge-servere for å dra nytte av det økte antallet kjerner og høyere minnehastigheter, og dermed dra nytte av HPC-applikasjoner.
Denne bloggen presenterer det første settet med resultater og drøfter effekten av de ulike alternativene for BIOS-justering som er tilgjengelige på Dell EMC PowerEdge C6420, med de nyeste Intel Xeon® Cascade Lake-prosessorene for enkelte HPC-ytelsesprøver og -applikasjoner. Nedenfor gis en kort beskrivelse av Cascade Lake-prosessoren, BIOS-alternativene og HPC-applikasjonene som brukes i denne studien.
Cascade Lake er Intels etterfølger for Skylake. Cascade Lake-prosessoren støtter opptil 28 kjerner, seks DDR4-minnekanaler med hastighet på opptil 2933 MT/s. I likhet med Skylake støtter Cascade Lake ekstra vektoriseringskraft med AVX512-instruksjonssettet som tillater 32 DP FLOP/syklus. Cascade Lake introduserer
Vector Neural Network Instructions (VNNI), som akselererer ytelsen til AI- og DL-arbeidsbelastninger som bildeklassifisering, talegjenkjenning, språkoversettelse, objektdeteksjon og mer. VNNI støtter også 8-biters instruksjon for å akselerere
inferensytelsen.
Cascade Lake inneholder
maskinvarereduksjoner for noen
sidekanalsårbarheter. Det forventes at dette kan forbedre ytelsen på lagringsarbeidsbelastninger, se etter fremtidige studier fra
Innovation Lab.
Siden Skylake og Cascade Lake er socket-kompatible, er justeringsknappene for prosessoren som vises i system-BIOS, de samme på tvers av disse prosessorgenerasjonene. Følgende alternativer for BIOS-justering ble undersøkt i denne studien, på samme måte som arbeid publisert
tidligere på Skylake.
Prosessorinnstillinger:
- Tilstøtende forhåndshenting av hurtigbufferlinje: Den tilstøtende forhåndshentingsmekanismen for hurtigbufferlinje tillater automatisk forhåndshenting av maskinvare, den fungerer uten programmeringsinngrep. Når den er aktivert, har den plass til to 64-byte cachelinjer i en 128-byte sektor, uavhengig av om den ekstra hurtigbufferlinjen er forespurt eller ikke.
- Forhåndshenting av programvare: Det unngår stall ved å laste dataene i cache før det er nødvendig. Eksempel: For å forhåndshente data fra hovedminnet til L2-hurtigbufferen langt før bruk med en L2-forhåndshentingsinstruksjon, og deretter forhåndshente data fra L2-hurtigbufferen til L1-hurtigbufferen like før bruk med en L1-forhåndshentingsinstruksjon. Når dette alternativet er aktivert, henter prosessoren en ekstra hurtigbufferlinje for hver minneforespørsel.
- SNC (Sub-Numa Cluster): Aktivering av SNC er som å dele enkeltkontakten i to NUMA-domener, hver med halvparten av de fysiske kjernene og halvparten av minnet til kontakten. Hvis dette høres kjent ut, ligner det i verktøy til Cluster-on-Die-alternativet som var tilgjengelig i Intel Xeon E5-2600 v3- og v4-prosessorer. SNC er implementert på en annen måte enn COD, og disse endringene forbedrer ekstern tilgang til sokler i Cascade Lake sammenlignet med tidligere generasjoner, som brukte Cluster-on-Die-alternativet. På operativsystemnivå vil en server med to sokler med SNC aktivert vise fire NUMA-domener. To av domenene vil være nærmere hverandre (på samme sokkel), og de to andre vil være en større avstand unna, over UPI til den eksterne kontakten. Dette kan sees ved hjelp av OS-verktøy som: numactl –H og er illustrert i figur 1.
Figur 1: Oppsett av NUMA-noder
Systemprofiler:
Systemprofilene er et metaalternativ som i sin tur angir flere ytelses- og strømstyringsfokuserte BIOS-alternativer som
Turbo-modus,
Cstate, C1E,
Pstate-administrasjon, Uncore-frekvens, etc. De ulike systemprofilene som sammenlignes i denne studien er:
- Ytelse
- PerformancePerWattDAPC
- PerformancePerWattOS
Vi brukte to HPC-ytelsesprøver og to HPC-applikasjoner for å forstå effekten av disse BIOS-alternativene på Cascade Lake-ytelsen. Konfigurasjonene av server- og HPC-programmer som ble brukt i denne studien, er beskrevet i tabell 1 og tabell 2.
Programmer |
Domene |
Versjon |
Benchmark |
High Performance Linpack (HPL) |
Beregning-Løs et tett system av lineære ligninger |
Fra Intel MKL – 2019 oppdatering 1 |
Problemstørrelse 90 %, 92 % og 94 % av det totale minnet |
Strømmen |
Båndbredde for minne |
5,4 |
Triaden |
WRF |
Værforskning og prognoser |
3.9.1 |
Conus 2,5 km |
ANSYS® Flytende® |
Flytende dynamikk |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m Exhaust_System_33m |
Tabell 1: Applikasjoner og benchmarks
Komponenter |
Detaljer |
Server |
PowerEdge-server C6420 |
Prosessor |
Intel® Xeon® Gold 6230 CPU @ 2.1 GHz, 20 kjerner |
Minne |
192 GB – 12 x 16 GB 2933 MT/s DDR4 |
Operativsystem |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Kjerne |
3.10.0-957.el7.x86_64 |
Kompilatoren |
Intel Parallel Studio Cluster Edition_2019_Update_1 |
Tabell 2 Serverkonfigurasjon
Alle resultatene som vises her er basert på enkeltservertester; Ytelsen på klyngenivå vil være bundet av den enkle serverytelsen. Følgende beregninger ble brukt til å sammenligne resultatene:
- Strøm – Triaderesultat som rapportert av referanseindeksen for strøm.
- HPL - GFLOP / andre.
- Flytende – problemløservurdering som rapportert av Fluent.
- WRF – Gjennomsnittlig tidstrinn beregnet over de siste 719 intervallene for Conus 2,5 km
Benchmarks og applikasjonsresultater
Forkortelser for grafnotasjoner:
Systemprofiler:
Perf – Performance OS – PerformancePerWattOS DAPC – PerformancePerWattDAPC
Sub-NUMA Clustering: SNC = 0(SNC = Disabled): SNC = 1(SNC = Enabled: Formatert som stripet i grafer)
SW - Software Prefetcher: SW = 0 (SW = Disabled): SW = 1 (SW = Aktivert)
Figur 2: Linpack med høy ytelse
Figur 2 sammenligner resultatet av HPL med problemstørrelse = 90 %, dvs. N = 144476 på tvers av ulike BIOS-alternativer. Grafen plotter absolutte Gigaflops oppnådd mens du kjører HPL på tvers av forskjellige BIOS-konfigurasjoner. Disse gigaflops oppnådd er plottet på y-aksen, høyere er bedre.
Nedenfor er observasjonene fra grafen:
- Mindre enn 1 % forskjell i HPL-ytelse på grunn av forhåndshenting av programvare.
- Ingen stor effekt av SNC på HPL-ytelse (0,5 % bedre med SNC = deaktivert).
- Ytelsessystemprofilen er opptil 6 % bedre sammenlignet med OS og DAPC.
Figur 3: Strømmen
Figur 3 sammenligner resultatet av STREAM på tvers av de ulike BIOS-konfigurasjonene.
Grafen plotter minnebåndbredden i gigabyte per sekund oppnådd mens du kjører STREAM Triad. Minnebåndbredden (GB/sek) som er oppnådd, er plottet på y-aksen, høyere er bedre. BIOS-konfigurasjonen som er knyttet til bestemte verdier på gigabyte per sekund, tegnes inn på x-aksen.
Nedenfor er observasjonene fra grafen:
- Opptil 3 % bedre minnebåndbredde med SNC=aktivert.
- Ikke mye avvik i ytelse på grunn av forhåndshenting av programvare på STREAM-minnebåndbredde.
- Ingen avvik på tvers av systemprofiler.
Figur 4: Minnebåndbredde – SNC
Figur 4 viser poengsummen for båndbredde for Stream Triad-minnet i en slik konfigurasjon. Båndbredden for hele systemminnet er ~220 GB/s. Når 20 kjerner på en lokal sokkel får tilgang til lokalt minne, er minnebåndbredden ~ 109 GB / s - halvparten av hele systembåndbredden. Halvparten av dette, ~ 56 GB / s, er minnebåndbredden til 10 tråder på samme NUMA-node som får tilgang til deres lokale minne og på en NUMA-nodetilgangsminne som tilhører den andre NUMA-noden på samme kontakt. Det er en 42 % reduksjon i minnebåndbredden til ~33 GB/s når trådene får tilgang til eksternt minne over QPI-koblingen på den eksterne kontakten. Dette forteller oss at det er betydelig båndbreddestraff i SNC-modus når data ikke er lokale.
Figur 5: WRF
Figur 5 sammenligner resultatet av WRF på tvers av forskjellige BIOS-alternativer, datasettet som brukes er conus2.5km med standard "namelist.input" -fil.
Grafen plotter absolutt gjennomsnittlig tidstrinn i sekunder oppnådd ved kjøring av WRF-conus2,5 km datasett på forskjellige BIOS-konfigurasjoner. Det gjennomsnittlige tidstrinnet som er oppnådd er plottet på y-aksen, lavere er bedre. De relative profilene som er knyttet til bestemte verdier for gjennomsnittlig tidstrinn, tegnes inn på x-aksen.
Nedenfor er observasjonene fra grafen:
- 2 % bedre ytelse med SNC = aktivert.
- Ingen ytelsesforskjell for forhåndshenting av programvare aktivert kontra deaktivert.
- Ytelsesprofilen er 1 % bedre enn PerformancePerWattDAPC-profiler
Figur 6 til og med figur 9 plotter Problemløservurdering oppnådd mens du kjører henholdsvis Fluent- med Ice_2m, Combustor_12m, Aircraft_Wing_14m og Exhaust_System_33m datasett. Problemløservurderingen som oppnås, tegnes inn på y-aksen, høyere er bedre. De relative profilene som er knyttet til bestemte verdier for gjennomsnittstid, tegnes inn på x-aksen.
Nedenfor er de generelle observasjonene fra grafene ovenfor:
- Opptil 4 % bedre ytelse med SNC = aktivert.
- Ingen effekt av forhåndshenting av programvare på ytelsen.
- Opptil 2 % bedre ytelse med ytelsesprofil sammenlignet med DAPC- og OS-profiler.
Konklusjon
I denne studien evaluerte vi effekten av ulike alternativer for BIOS-justering på ytelsen ved bruk av Intel Xeon Gold 6230-prosessoren. Når man observerer ytelsen til ulike BIOS-alternativer på tvers av ulike ytelsestester og applikasjoner, konkluderes følgende:
- Forhåndshenting av programvare har ingen signifikant innvirkning på ytelsen til datasettene som ble testet. Derfor anbefaler vi forhåndshenting av programvare for å forbli som standard, dvs.
- Med SNC = aktivert 2-4% ytelsesøkning i Fluent og Stream, ca. 1% i WRF sammenlignet med SNC = Deaktivert. Vi anbefaler derfor at SNC aktiveres for å oppnå bedre ytelse.
- Ytelsesprofilen er 2-4% bedre enn PerformancePerWattDAPC og PerformancePerWattOS. Vi anbefaler derfor ytelsesprofilen for HPC.
Det anbefales at Hyper-Threading slås av for generelle HPC-klynger. Fordelen med denne funksjonen bør testes og aktiveres, avhengig av applikasjonene som brukes, etter behov.
Ikke omtalt i denne studien er et minne RAS kjennetegnet kalt Adaptive Double DRAM Device Correction (ADDDC) som er tilgjengelig når et system er konfigurert med minne som har x4 DRAM organisasjon (32GB, 64GB DIMM). ADDDC er ikke tilgjengelig når et system har x8-baserte DIMM-er (8 GB, 16 GB), og er uvesentlig i disse konfigurasjonene. For HPC-workloader anbefales det at ADDDC angis til deaktivert når det er tilgjengelig som et justerbart alternativ.