Článek napsali Varun Bawa, Savitha Pareek a Ashish K Singh z oddělení HPC and AI Innovation Lab v dubnu 2019
Spolu s vydáním procesorů Intel Xeon® Scalable 2. generace (architektura s kódovým označením Cascade Lake) aktualizovala společnost Dell EMC servery PowerEdge 14. generace, aby mohly těžit z většího počtu jader a vyšší rychlosti paměti, a tím těžit z aplikací HPC.
Tento blog představuje první sadu výsledků a pojednává o vlivu různých možností ladění systému BIOS, které jsou k dispozici na serveru Dell EMC PowerEdge C6420 s nejnovějšími procesory Intel Xeon® Cascade Lake pro některé srovnávací testy a aplikace HPC. Níže je uveden stručný popis procesoru Cascade Lake, možností systému BIOS a aplikací HPC použitých v této studii.
Cascade Lake je nástupcem procesoru Skylake od Intelu. Procesor Cascade Lake podporuje až 28 jader, šest paměťových kanálů DDR4 s rychlostí až 2933 MT/s. Podobně jako Skylake podporuje Cascade Lake dodatečný vektorizační výkon s instrukční sadou AVX512, která umožňuje 32 DP FLOP/cyklus. Cascade Lake představuje
instrukce vektorové neuronové sítě (VNNI), které zrychlují výkon úloh AI a DL, jako je klasifikace obrazu, rozpoznávání řeči, překlad jazyka, detekce objektů a další. VNNI také podporuje 8bitovou instrukci pro urychlení
výkonu inference.
Cascade Lake obsahuje
zmírnění hardwarových rizik pro některá
ohrožení zabezpečení postranního kanálu. Očekává se, že by to mohlo zlepšit výkon při úložných úlohách. Očekávejte budoucí studie inovační
laboratoře.
Vzhledem k tomu, že procesory Skylake a Cascade Lake jsou kompatibilní se sockety, jsou knoflíky ladění procesorů uvedené v systému BIOS u těchto generací procesorů podobné. V této studii byly zkoumány následující možnosti vyladění systému BIOS, které se podobají práci publikované v
minulosti na procesorech Skylake.
Nastavení procesoru:
- Předběžné načítání přilehlého řádku v mezipaměti: Mechanismus Adjacent Cache-Line Prefetch umožňuje automatické předběžné načítání hardwaru, funguje bez zásahu programátora. Je-li povoleno, pojme dva 64bajtové řádky mezipaměti do 128bajtového sektoru bez ohledu na to, zda byl vyžádán další řádek mezipaměti nebo ne.
- Předběžné načítání softwaru: Vyhne se zastavení tím, že načte data do mezipaměti dříve, než jsou potřeba. Příklad: Předběžné načtení dat z hlavní paměti do mezipaměti L2 v dostatečném předstihu před použitím pomocí instrukce předběžného načtení L2 a následné předběžné načtení dat z mezipaměti L2 do mezipaměti L1 těsně před použitím pomocí instrukce předběžného načtení L1. Zde platí, že pokud je tato možnost povolena, procesor pro každý požadavek na paměť předem načte další řádek mezipaměti.
- SNC (cluster Sub-Numa): Povolení SNC se podobá rozdělení jednoho socketu na dvě domény NUMA, z nichž každá má polovinu fyzických jader a polovinu paměti soketu. Pokud vám to zní povědomě, nástroj se podobá možnosti Cluster-on-Die , která byla k dispozici v procesorech Intel Xeon E5-2600 v3 a v4. SNC je implementováno jinak než COD a tyto změny zlepšují vzdálený přístup k soketům v Cascade Lake ve srovnání s předchozími generacemi, které používaly možnost Cluster-on-Die. Na úrovni operačního systému se na dvousocketovém serveru s povoleným SNC zobrazí čtyři domény NUMA. Dvě z domén budou blíže k sobě (na stejném soketu) a další dvě budou ve větší vzdálenosti, přes UPI ke vzdálenému soketu. To lze zjistit pomocí nástrojů operačního systému, jako jsou: numactl –H a je znázorněn na obrázku 1.
Obrázek 1: Rozložení uzlů NUMA
Profily systému:
Systémové profily jsou meta možnosti, které zase nastavují několik možností systému BIOS zaměřených na výkon a správu napájení, jako je
režim Turbo,
Cstate, C1E,
správa Pstate, frekvence Uncore atd. Různé systémové profily porovnávané v této studii zahrnují:
- Performance
- PerformancePerWattDAPC
- PerformancePerWattOS
Použili jsme dva srovnávací testy HPC a dvě aplikace HPC, abychom pochopili dopad těchto možností systému BIOS na výkon Cascade Lake. Konfigurace serverů a aplikací HPC použitých pro tuto studii jsou popsány v tabulce 1 a tabulce 2.
Aplikace |
Doména |
Verze |
Benchmark |
Vysoce výkonný Linpack (HPL) |
Výpočet-Vyřešte hustou soustavu lineárních rovnic |
Z Intel MKL – 2019 Update 1 |
Velikost problému 90 %, 92 % a 94 % celkové paměti |
Proudu |
Šířka pásma paměti |
5.4 |
Triad |
WRF |
Výzkum a předpověď počasí |
3.9.1 |
Conus 2.5km |
ANSYS® Fluent® |
Dynamika tekutin |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m Exhaust_System_33m |
Tabulka 1: Aplikace a srovnávací testy
Součásti |
Podrobnosti |
Server |
PowerEdge server C6420 |
Procesor |
Procesor Intel® Xeon® Gold 6230 @ 2,1 GHz, 20 jader |
Paměť |
192 GB – 12 × 16 GB, 2 933 MT/s, DDR4 |
Operační systém |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Jádro |
3.10.0-957.el7.x86_64 |
Kompilátoru |
Intel Parallel Studio Cluster Edition_2019_Update_1 |
Tabulka 2 Konfigurace serveru
Všechny zde uvedené výsledky jsou založeny na testech s jedním serverem. Výkon na úrovni clusteru bude vázán výkonem jednoho serveru. K porovnání výkonu byly použity následující metriky:
- Stream – skóre triády podle srovnávacího testu streamu.
- HPL – GFLOP/s.
- Fluent – hodnocení řešitele podle údajů společnosti Fluent.
- WRF – Průměrný časový krok vypočítaný za posledních 719 intervalů pro Conus 2.5km
Srovnávací testy a výsledky aplikací
Zkratky zápisu grafu:
Profily systému:
Perf – výkon operačního systému – PerformancePerWattOS DAPC – PerformancePerWattDAPC
Sub-NUMA clustering: SNC = 0 (SNC = zakázáno): SNC = 1(SNC = Enabled: Formátováno jako prokládané v grafech)
SW – Software Prefetcher: SW = 0 (SW = Disabled): SW = 1 (SW = Povoleno)
Obrázek 2: Vysoce výkonný Linpack
Obrázek 2 porovnává výsledek HPL s velikostí problému = 90 %, tj. N=144476, v různých variantách systému BIOS. Graf vykresluje absolutní počet gigaflopů získaných při spuštění HPL v různých konfiguracích systému BIOS. Tyto získané gigaflopy jsou vyneseny na ose y, vyšší je lepší.
Níže jsou uvedeny postřehy z grafu:
- Méně než 1% rozdíl ve výkonu HPL způsobený předběžným načtením softwaru.
- Žádný významný vliv SNC na výkon HPL (o 0,5 % lepší s SNC = vypnuto).
- Profil Performance System je až o 6 % lepší ve srovnání s operačním systémem a DAPC.
Obrázek 3: Proudu
Obrázek 3 porovnává výsledek příkazu STREAM v různých konfiguracích systému BIOS.
Graf vykresluje šířku pásma paměti v gigabajtech za sekundu získaných při spuštění STREAM Triády. Získaná šířka pásma paměti (GB/s) je vynesena na ose y, vyšší je lepší. Konfigurace systému BIOS přiřazená konkrétním hodnotám v gigabajtech za sekundu se vykresluje na ose x.
Níže jsou uvedeny postřehy z grafu:
- Až o 3 % vyšší šířka pásma paměti s povolenou technologií SNC=.
- Žádná velká odchylka výkonu kvůli předběžnému načítání softwaru na šířku pásma paměti STREAM.
- Žádná odchylka mezi systémovými profily.
Obrázek 4: Šířka pásma paměti – SNC
Obrázek 4 znázorňuje skóre šířky pásma paměti Stream Triad v takové konfiguraci. Plná šířka pásma systémové paměti je ~220 GB/s. Když 20 jader v místním socketu přistupuje k místní paměti, šířka pásma paměti je ~ 109 GB/s, což je polovina plné šířky pásma systému. Polovina z toho, ~56 GB/s, je šířka pásma paměti 10 vláken na stejném uzlu NUMA, která přistupují k místní paměti, a na jedné přístupové paměti uzlu NUMA, která patří do druhého uzlu NUMA na stejném soketu. Došlo k 42% poklesu šířky pásma paměti na ~33 GB/s, když vlákna přistupují ke vzdálené paměti přes linku QPI na vzdáleném soketu. To nám říká, že v režimu SNC dochází k významnému snížení šířky pásma, když data nejsou místní.
Obrázek 5: WRF
Obrázek 5 porovnává výsledek WRF v různých možnostech systému BIOS. Použitá datová sada je conus2.5km s výchozím souborem "namelist.input".
Graf vykresluje absolutní průměrný časový krok v sekundách získaný při spuštění datové sady WRF-conus2.5km v různých konfiguracích systému BIOS. Získaný průměrný časový krok je vynesen na ose y, nižší je lepší. Relativní profily spojené s určitými hodnotami průměrného časového kroku jsou vykresleny na ose x.
Níže jsou uvedeny postřehy z grafu:
- O 2 % vyšší výkon s technologií SNC=Enabled.
- Žádný rozdíl ve výkonu pro povolené a zakázané předběžné načítání softwaru.
- Výkonnostní profil je o 1 % lepší než profily PerformancePerWattDAPC
Obrázky 6 až 9 znázorňují hodnocení řešiče získané při spuštění Fluent – s datovou sadou Ice_2m, Combustor_12m, Aircraft_Wing_14m a Exhaust_System_33m. Získané hodnocení řešiče je vyneseno na ose y, vyšší je lepší. Relativní profily spojené s konkrétními hodnotami Průměrný čas jsou vykresleny na ose x.
Níže jsou uvedeny celkové postřehy z výše uvedených grafů:
- Až o 4 % vyšší výkon s technologií SNC=Enabled.
- Žádné ovlivnění funkcí Software Prefetch na výkon.
- Až o 2 % vyšší výkon s profilem výkonu ve srovnání s profily DAPC a operačního systému
Závěr
V této studii jsme vyhodnotili vliv různých možností vyladění systému BIOS na výkon při použití procesoru Intel Xeon Gold 6230. Na základě sledování výkonu různých možností systému BIOS v různých srovnávacích testech a aplikacích dochází k následujícímu závěru:
- Předběžné načítání softwaru nemá žádný významný vliv na výkon testovaných datových sad. Proto doporučujeme, aby Software Prefetcher zůstal ve výchozím nastavení, tj. Povoleno
- Když je SNC=Enabled Zvýšení výkonu o 2–4 % u produktů Fluent a Stream, přibližně o 1 % u WRF ve srovnání se SNC = vypnuto. Proto doporučujeme povolit SNC , aby bylo dosaženo lepšího výkonu.
- Výkonnostní profil je o 2–4 % lepší než u PerformancePerWattDAPC a PerformancePerWattOS. Proto doporučujeme výkonnostní profil pro HPC.
U clusterů HPC pro obecné účely doporučujeme technologii Hyper-Threading vypnout . V závislosti na použitých aplikacích by měla být výhoda této funkce otestována a podle potřeby povolena.
Tato studie se nezabývá funkcí RAS paměti s názvem Adaptive Double DRAM Device Correction (ADDDC), která je k dispozici, když je systém nakonfigurován s pamětí x4 DRAM (32GB, 64GB moduly DIMM). ADDDC není k dispozici, pokud má systém moduly DIMM založené na x8 (8 GB, 16 GB), a v těchto konfiguracích není podstatný. U úloh HPC se doporučuje nastavit možnost ADDDC na hodnotu zakázáno, je-li k dispozici jako možnost nastavení.