Artikel geschreven door Varun Bawa, Savitha Pareek en Ashish K Singh van HPC en AI Innovation Lab in april 2019
Met de release van de 2e generatie Intel Xeon® processors uit de schaalbare processorreeks (met de codenaam Cascade Lake) heeft Dell EMC de PowerEdge servers van de 14e generatie bijgewerkt om te profiteren van het grotere aantal cores en hogere geheugensnelheden, wat ten goede komt aan HPC-applicaties.
In deze blog presenteren we de eerste reeks resultaten en bespreken we de impact van de verschillende BIOS-afstemmingsopties die beschikbaar zijn op de Dell EMC PowerEdge C6420 met de nieuwste Intel Xeon® Cascade Lake-processors voor sommige HPC-benchmarks en -applicaties. Hieronder vindt u een korte beschrijving van de Cascade Lake-processor, BIOS-opties en HPC-applicaties die in dit onderzoek worden gebruikt.
Cascade Lake is de opvolger van Intel voor Skylake. De Cascade Lake-processor ondersteunt maximaal 28 cores, zes DDR4-geheugenkanalen met snelheden tot 2933 MT/s. Net als Skylake ondersteunt Cascade Lake extra vectorisatievermogen met de AVX512-instructieset die 32 DP FLOP/cyclus toestaat. Cascade Lake introduceert de
Vector Neural Network Instructions (VNNI), die de prestaties van AI- en DL-workloads versnelt, zoals beeldclassificatie, spraakherkenning, taalvertaling, objectdetectie en meer. VNNI ondersteunt ook 8-bits instructie om
deductieprestaties te versnellen.
Cascade Lake bevat
hardwarebeperkingen voor sommige
kwetsbaarheden in side-channels. Verwacht wordt dat dit de prestaties op storageworkloads kan verbeteren. Kijk uit naar toekomstige studies van het
Innovation Lab.
Aangezien Skylake en Cascade Lake socket-compatibel zijn, zijn de processorafstemmingsknoppen in het systeem-BIOS vergelijkbaar tussen deze processorgeneraties. De volgende opties voor BIOS-afstemming zijn in dit onderzoek onderzocht, vergelijkbaar met werk dat in het
verleden op Skylake is gepubliceerd.
Processorinstellingen:
- Adjacent Cache Line Prefetch: Het aangrenzende Cache-Line Prefetch-mechanisme maakt automatische hardware-prefetch mogelijk, het werkt zonder tussenkomst van de programmeur. Als deze optie is ingeschakeld, worden er twee cacheregels van 64 bytes in een sector van 128 bytes geplaatst, ongeacht of de extra cacheregel is aangevraagd of niet.
- Software Prefetcher: Het voorkomt vastlopen door de gegevens in de cache te laden voordat ze nodig zijn. Voorbeeld: Om data van het hoofdgeheugen naar de L2-cache ver voor het gebruik op te halen met een L2 prefetch-instructie en vervolgens data van de L2-cache naar de L1-cache vlak voor het gebruik vooraf op te halen met een L1 prefetch-instructie. Hier zal de processor, indien ingeschakeld ingesteld, extra cacheregel ophalen voor elke geheugenaanvraag.
- SNC (sub-Numa-cluster): Het inschakelen van SNC is vergelijkbaar met het splitsen van de enkele socket in twee NUMA-domeinen, elk met de helft van de fysieke cores en de helft van het geheugen van de socket. Als dit u bekend in de oren klinkt, is het qua nut vergelijkbaar met de Cluster-on-Die-optie die beschikbaar was in Intel Xeon E5-2600 v3- en v4-processors. SNC is anders geïmplementeerd dan COD, en deze wijzigingen verbeteren de externe sockettoegang in Cascade Lake in vergelijking met de vorige generaties, die de Cluster-on-Die-optie gebruikten. Op besturingssysteemniveau geeft een server met twee sockets waarop SNC is ingeschakeld vier NUMA-domeinen weer. Twee van de domeinen bevinden zich dichter bij elkaar (op dezelfde socket) en de andere twee bevinden zich op een grotere afstand, over de UPI naar de externe socket. Dit kan worden gezien met behulp van OS-tools zoals: numactl –H en wordt geïllustreerd in figuur 1.
Afbeelding 1: Lay-out van NUMA-knooppunten
Systeemprofielen:
De systeemprofielen zijn meta-opties die op hun beurt meerdere op prestaties en energiebeheer gerichte BIOS-opties instellen, zoals
Turbo-modus,
Cstate, C1E,
Pstate-beheer, Uncore-frequentie, enz. De verschillende systeemprofielen die in dit onderzoek zijn vergeleken, zijn onder meer:
- Prestaties
- PrestatiesPerWattDAPC
- PrestatiesPerWattOS
We hebben twee HPC-benchmarks en twee HPC-applicaties gebruikt om inzicht te krijgen in de impact van deze BIOS-opties op de Cascade Lake-prestaties. De configuraties van server- en HPC-applicaties die voor dit onderzoek zijn gebruikt, worden beschreven in tabel 1 en tabel 2.
Applicaties |
Domein |
Versie |
Benchmark |
High Performance Linpack (HPL) |
Computation-Solve a compact system of linear equations |
Van Intel MKL - 2019 Update 1 |
Probleemgrootte 90%, 92% en 94% van het totale geheugen |
Stream |
Geheugenbandbreedte |
5.4 |
Triade |
WRF |
Weeronderzoek en weersvoorspelling |
3.9.1 |
Conus 2.5km |
ANSYS® Fluent® |
Vloeistofdynamica |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m, Exhaust_System_33m |
Tabel 1: Applicaties en benchmarks
Onderdelen |
Details |
Server |
PowerEdge server C6420 |
Processor |
Intel® Xeon® Gold 6230 CPU @ 2,1 GHz, 20 cores |
Geheugen |
192 GB – 12 x 16 GB 2933 MT/s DDR4 |
Besturingssysteem |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Kern |
3.10.0-957.el7.x86_64 |
Compiler |
Intel Parallel Studio Cluster Edition_2019_Update_1 |
Tabel 2 serverconfiguratie
Alle hier getoonde resultaten zijn gebaseerd op tests met één server; De prestaties op clusterniveau zijn gebonden aan de prestaties van één server. De volgende statistieken zijn gebruikt om de prestaties te vergelijken:
- Stream: Triade-score zoals gerapporteerd door de streambenchmark.
- HPL – GFLOP/seconde.
- Fluent - Oplosser-beoordeling zoals gerapporteerd door Fluent.
- WRF – Gemiddelde tijdstap berekend over de laatste 719 intervallen voor Conus 2,5 km
Benchmarks en toepassingsresultaten
Afkortingen van grafieknotaties:
Systeemprofielen:
Perf – Performance OS – PerformancePerWattOS DAPC – PerformancePerWattDAPC
Sub-NUMA Clustering: SNC = 0(SNC = Uitgeschakeld): SNC = 1(SNC = Ingeschakeld: Geformatteerd als Striped in grafieken)
SW – Software Prefetcher: SW = 0 (SW = uitgeschakeld): SW = 1 (SW = Ingeschakeld)
Afbeelding 2: Hoogwaardig Linpack
Figuur 2 vergelijkt het resultaat van HPL met Probleemgrootte = 90%, d.w.z. N=144476 voor verschillende BIOS-opties. De grafiek toont absolute gigaffloops die zijn verkregen tijdens het uitvoeren van HPL in verschillende BIOS-configuraties. Deze verkregen gigaflops zijn uitgezet op de y-as, hoger is beter.
Hieronder staan de waarnemingen uit de grafiek:
- Minder dan 1% verschil in HPL-prestaties als gevolg van software prefetch.
- Geen groot effect van SNC op HPL-prestaties (0,5% beter met SNC = uitgeschakeld).
- Het prestatiesysteemprofiel is tot 6% beter in vergelijking met besturingssystemen en DAPC.
Afbeelding 3: Stream
Afbeelding 3 vergelijkt het resultaat van STREAM voor de verschillende BIOS-configuraties.
De grafiek geeft de geheugenbandbreedte in gigabytes per seconde weer, verkregen tijdens het uitvoeren van STREAM Triad. De verkregen geheugenbandbreedte (GB/Sec) wordt uitgezet op de y-as, hoger is beter. De BIOS-configuratie die is gekoppeld aan specifieke waarden van gigabytes per seconde wordt uitgezet op de x-as.
Hieronder staan de waarnemingen uit de grafiek:
- Tot 3% betere geheugenbandbreedte met SNC= ingeschakeld.
- Niet veel afwijking in prestaties als gevolg van Software prefetch op STREAM-geheugenbandbreedte.
- Geen afwijking tussen systeemprofielen.
Afbeelding 4: Geheugenbandbreedte - SNC
Figuur 4 toont de bandbreedtescore van het Stream Triad-geheugen in een dergelijke configuratie. De volledige bandbreedte van het systeemgeheugen is ~220 GB/s. Wanneer 20 cores op een lokale socket toegang hebben tot het lokale geheugen, is de geheugenbandbreedte ~ 109 GB/s - de helft van de volledige systeembandbreedte. De helft hiervan, ~56 GB/s, is de geheugenbandbreedte van 10 threads op hetzelfde NUMA-knooppunt die toegang hebben tot hun lokale geheugen en op het ene NUMA-knooppunt toegangsgeheugen dat behoort tot het andere NUMA-knooppunt op dezelfde socket. Er is een daling van 42% in geheugenbandbreedte tot ~33 GB/s wanneer de threads toegang krijgen tot het externe geheugen via de QPI-koppeling op de externe socket. Dit vertelt ons dat er een aanzienlijke bandbreedteboete is in de SNC-modus wanneer data niet lokaal zijn.
Afbeelding 5: WRF
Afbeelding 5 vergelijkt het resultaat van WRF over verschillende BIOS-opties. De gebruikte dataset is conus2,5 km met het standaardbestand
"namelist.input".De grafiek toont de absolute gemiddelde tijdstap in seconden die is verkregen tijdens het uitvoeren van een WRF-dataset van 2,5 km op verschillende BIOS-configuraties. De gemiddelde verkregen tijdstap wordt uitgezet op de y-as, lager is beter. De relatieve profielen die zijn gekoppeld aan specifieke waarden van de gemiddelde tijdstap worden uitgezet op de x-as.
Hieronder staan de waarnemingen uit de grafiek:
- 2% betere prestaties met SNC=Ingeschakeld.
- Geen prestatieverschil voor Software Prefetch ingeschakeld versus uitgeschakeld.
- Prestatieprofiel is 1% beter dan PrestatiePerWattDAPC-profielen
Afbeelding 6 tot en met afbeelding 9 toont de oplosserbeoordeling die is verkregen tijdens het uitvoeren van Fluent met respectievelijk Ice_2m, Combustor_12m, Aircraft_Wing_14m en Exhaust_System_33m dataset. De verkregen Oplosser-rating wordt uitgezet op de y-as, Hoger is beter. De relatieve profielen die zijn gekoppeld aan specifieke waarden van de gemiddelde tijd worden uitgezet op de x-as.
Hieronder staan de algemene waarnemingen uit de bovenstaande grafieken:
- Tot 4% betere prestaties met SNC=Enabled.
- Geen effect van Software Prefetch op de prestaties.
- Tot 2% betere prestaties met prestatieprofiel in vergelijking met DAPC- en OS-profielen.
Conclusie
In dit onderzoek hebben we de impact van verschillende BIOS-afstemmingsopties op de prestaties geëvalueerd bij gebruik van de Intel Xeon Gold 6230 processor. Bij het observeren van de prestaties van verschillende BIOS-opties in verschillende benchmarks en applicaties wordt het volgende geconcludeerd:
- Software Prefetch heeft geen significante invloed op de prestaties van de geteste datasets. Daarom raden we aan om Software Prefetcher als standaard te behouden, d.w.z. Ingeschakeld
- Met SNC = ingeschakeld 2-4% prestatieverbetering in Fluent en Stream, ca. 1% in WRF vergeleken met SNC = uitgeschakeld. Daarom raden we aan om SNC in te schakelen om betere prestaties te bereiken.
- Het prestatieprofiel is 2-4% beter dan PrestatiesPerWattDAPC en PrestatiesPerWattOS. Daarom bevelen we het prestatieprofiel voor HPC aan.
Het wordt aanbevolen om Hyper Threading uit te schakelen voor HPC-clusters voor algemene doeleinden. Afhankelijk van de gebruikte applicaties moet het voordeel van deze functie worden getest en waar nodig worden ingeschakeld.
Niet besproken in dit onderzoek is een geheugen-RAS-functie genaamd Adaptive Double DRAM Device Correction (ADDDC) die beschikbaar is wanneer een systeem is geconfigureerd met geheugen met x4 DRAM-organisatie (32 GB, 64 GB DIMM's). ADDDC is niet beschikbaar wanneer een systeem x8-gebaseerde DIMM's (8GB, 16GB) heeft en is niet van belang voor deze configuraties. Voor HPC-workloads wordt aanbevolen om ADDDC in te stellen op uitgeschakeld wanneer dit beschikbaar is als afstembare optie.