Makale, HPC ve AI Innovation Lab'den Varun Bawa, Savitha Pareek ve Ashish K Singh tarafından Nisan 2019'da yazılmıştır
2. Nesil Intel Xeon® Ölçeklenebilir İşlemci Ailesi işlemcilerin (mimari kod adı "Cascade Lake") piyasaya sürülmesiyle Dell EMC, PowerEdge 14. nesil sunucularını artan sayıda çekirdek ve daha yüksek bellek hızlarından faydalanacak şekilde güncelleştirdi ve böylece HPC uygulamalarından yararlandı.
Bu blog ilk sonuç kümesini sunar ve bazı HPC karşılaştırmalı testleri ve uygulamaları için en yeni Intel Xeon® Cascade Lake işlemcilere sahip Dell EMC PowerEdge C6420 de bulunan farklı BIOS ayarlama seçeneklerinin etkisini ele alır. Bu çalışmada kullanılan Cascade Lake işlemci, BIOS seçenekleri ve HPC uygulamalarının kısa bir açıklaması aşağıda verilmiştir.
Cascade Lake , Intel'in Skylake'in halefidir. Cascade Lake işlemci, 28 adede kadar çekirdeği, 2933 MT/sn'ye kadar hıza sahip altı DDR4 bellek kanalını destekler. Skylake'e benzer şekilde Cascade Lake, 32 DP FLOP/döngüye izin veren AVX512 komut seti ile ek vektörleştirme gücünü destekler. Cascade Lake, Görüntü sınıflandırma, konuşma tanıma, dil çevirisi, nesne algılama ve daha fazlası gibi yapay zeka ve DL iş yüklerinin performansını hızlandıran
Vektör Sinir Ağı Talimatlarını (VNNI) sunar. VNNI,
çıkarım performansını hızlandırmak için 8 bit öğretimi de destekler.
Cascade Lake, bazı
yan kanal güvenlik açıkları için
donanım azaltıcı etkenleri içerir. Bunun depolama iş yüklerinde performansı artırması bekleniyor,
İnovasyon Laboratuvarı'ndan gelecek çalışmalara bakın.
Skylake ve Cascade Lake soket uyumlu olduğundan, sistem BIOS'unda gösterilen işlemci ayar düğmeleri bu işlemci nesilleri arasında benzerdir. Bu çalışmada,
Skylake üzerinde geçmişte yayınlanan çalışmalara benzer şekilde aşağıdaki BIOS ayarlama seçenekleri incelenmiştir.
İşlemci ayarları:
- Ardışık Önbellek Satır Ön belleğe Alma: Bitişik Önbellek Satırı Ön Belleğe Alma mekanizması, otomatik donanım ön belleğe alma işlemine izin verir, programcı müdahalesi olmadan çalışır. Etkinleştirildiğinde, ek önbellek satırının istenip istenmediğine bakılmaksızın, 128 baytlık bir kesimde iki adet 64 baytlık önbellek satırı barındırır.
- Yazılım Ön Belleğe Alıcı: Verileri ihtiyaç duyulmadan önce önbelleğe yükleyerek durmayı önler. Example: Bir L2 ön getirme talimatı ile kullanımdan çok önce ana bellekten L2 önbelleğine veri önceden getirmek ve ardından bir L1 ön getirme talimatıyla kullanımdan hemen önce L2 önbelleğinden L1 önbelleğine önceden getirmek. Burada, etkinleştirildiğinde, işlemci her bellek isteği için ekstra önbellek satırını önceden getirecektir.
- SNC (Alt Numa Kümesi): SNC'yi etkinleştirmek, tek soketi, her biri fiziksel çekirdeğin yarısına ve soket belleğinin yarısına sahip iki NUMA etki alanına bölmeye benzer. Bu size tanıdık geldiyse yardımcı program açısından Intel Xeon E5-2600 v3 ve v4 işlemcilerde bulunan Cluster-on-Die seçeneğine benzer. SNC, COD'den farklı bir şekilde uygulanır ve bu değişiklikler, Cluster-on-Die seçeneğini kullanan önceki nesillere kıyasla Cascade Lake'te uzaktan soket erişimini iyileştirir. İşletim Sistemi düzeyinde, SNC'nin etkinleştirildiği çift soketli bir sunucu dört NUMA etki alanı görüntüler. Etki alanlarından ikisi birbirine daha yakın (aynı yuvada) olacak ve diğer ikisi UPI'den uzak yuvaya daha uzak bir mesafede olacaktır. Bu, aşağıdaki gibi işletim sistemi araçları kullanılarak görülebilir: numactl –H ve Şekil 1'de gösterilmiştir.
Şekil 1: NUMA düğümleri Düzeni
Sistem profilleri:
Sistem profilleri, sırayla
Turbo modu,
Cstate, C1E,
Pstate yönetimi, Uncore frekansı vb. gibi birden fazla performans ve güç yönetimi odaklı BIOS seçeneğini ayarlayan bir meta seçeneklerdir. Bu çalışmada karşılaştırılan farklı sistem profilleri şunları içerir:
- Performans
- PerformansPerWattDAPC
- WattOS Başına Performans
Bu BIOS seçeneklerinin Cascade Lake performansı üzerindeki etkisini anlamak için iki HPC karşılaştırmalı testi ve iki HPC uygulaması kullandık. Bu çalışma için kullanılan sunucu ve HPC uygulamalarının yapılandırmaları Tablo 1 ve Tablo 2'de açıklanmaktadır.
Applications (Uygulamalar) |
Domain (Etki Alanı) |
Sürüm |
Kriter |
Yüksek Performanslı Linpack (HPL) |
Hesaplama-Yoğun bir doğrusal denklem sistemini çözün |
Intel MKL - 2019 Güncelleme 1'den |
Problem boyutu toplam belleğin %90'ı, %92'si ve %94'ü |
Akışı |
Bellek Bant Genişliği |
5.4 |
Triad |
WRF |
Hava Durumu Araştırması ve Tahmini |
3.9.1 |
Konus 2.5km |
ANSYS® Akıcı® |
Akışkanlar Dinamiği |
19.2 |
Ice_2m, Combustor_12m, Aircraft_wing_14m, Exhaust_System_33m |
Tablo 1: Uygulamalar ve Karşılaştırmalar
Bileşen |
Ayrıntılar |
Sunucu |
PowerEdge sunucusu C6420 |
İşlemci |
Intel® Xeon® Gold 6230 CPU @ 2,1 GHz, 20 çekirdek |
Bellek |
192 GB – 12 x 16 GB 2933 MT/s DDR4 |
İşletim Sistemi |
Red Hat Enterprise Linux 7.6Red Hat Enterprise Linux 7.6 |
Kernel |
3.10.0-957.el7.x86_64 |
Derleyici |
Intel Parallel Studio Cluster Edition_2019_Update_1 |
Tablo 2 Sunucu Yapılandırması
Burada gösterilen tüm sonuçlar tek sunuculu testlere dayanmaktadır; Küme düzeyindeki performans, tek sunucu performansına bağlıdır. Performansı karşılaştırmak için aşağıdaki metrikler kullanılmıştır:
- Akış – Akış karşılaştırması tarafından bildirilen üçlü puan.
- HPL – GFLOP/saniye.
- Fluent - Fluent tarafından bildirildiği şekliyle çözücü derecelendirmesi.
- WRF – Conus 719km için son 2.5 aralıkta hesaplanan ortalama zaman adımı
Karşılaştırmalar ve Uygulama Sonuçları
Grafik gösterimi kısaltmaları:
Sistem Profilleri:
Perf – Performance OS – PerformancePerWattOS DAPC – PerformancePerWattDAPC
Sub-NUMA Clustering: SNC = 0(SNC = Devre Dışı): SNC = 1(SNC = Enabled: Grafiklerde Şeritli olarak biçimlendirilmiş)
SW – Software Prefetcher: SW = 0 (SW = Devre Dışı): SW = 1 (SW = Etkin)
Şekil 2: Yüksek Performanslı Linpack
Şekil 2, HPL'nin sonucunu farklı BIOS seçeneklerinde Sorun boyutu = %90, yani N=144476 ile karşılaştırır. Grafik, HPL'yi farklı BIOS yapılandırmalarında çalıştırırken elde edilen mutlak Gigaflop'ları çizer. Elde edilen bu Gigafloplar y ekseninde çizilir, ne kadar yüksek olursa o kadar iyidir.
Grafikteki gözlemler aşağıdadır:
- Yazılım ön getirmesi nedeniyle HPL performansında %1'den az fark.
- SNC'nin HPL Performansı üzerinde önemli bir etkisi yoktur (SNC=Devre Dışı ile %0,5 daha iyi).
- Performans Sistem Profili, işletim sistemi ve DAPC'ye kıyasla %6'ya kadar daha iyidir.
Şekil 3: Akışı
Şekil 3 te, farklı BIOS yapılandırmalarında STREAM sonuçları karşılaştırılmaktadır.
Grafik, STREAM Triad çalıştırılırken elde edilen Bellek bant genişliğini saniyede Gigabayt cinsinden çizer. Elde edilen Bellek bant genişliği (GB/Sn) y ekseninde çizilir, daha yüksek o kadar iyidir. Saniye başına Gigabayt gibi belirli değerlerle ilişkili BIOS yapılandırması x ekseninde çizilir.
Grafikteki gözlemler aşağıdadır:
- SNC=etkin ile %3'e kadar daha iyi bellek bant genişliği.
- STREAM bellek bant genişliğinde yazılım önceden getirmesi nedeniyle performansta çok fazla sapma yok.
- Sistem Profilleri arasında sapma yok.
Şekil 4: Bellek Bant Genişliği – SNC
Şekil 4, böyle bir yapılandırmada Stream Triad bellek bant genişliği puanını çizmektedir. Tam sistem belleği bant genişliği ~220 GB/sn'dir. Yerel bir soketteki 20 çekirdek yerel belleğe eriştiğinde, bellek bant genişliği ~ 109 GB/sn'dir - tam sistem bant genişliğinin yarısı. Bunun yarısı, ~56 GB/sn, yerel belleğe erişen aynı NUMA düğümü ve aynı soketteki diğer NUMA düğümüne ait bir NUMA düğümü erişim belleği üzerindeki 10 iş parçacığının bellek bant genişliğidir. İş parçacıkları uzak yuvadaki QPI bağlantısı üzerinden uzak belleğe eriştiğinde bellek bant genişliğinde %42'lik bir düşüş ~33 GB/sn'ye düşer. Bu da bize, veriler yerel olmadığında SNC modunda önemli bir bant genişliği cezası olduğunu söyler.
Şekil 5: WRF
Şekil 5, farklı BIOS seçeneklerinde WRF'nin sonucunu karşılaştırır, kullanılan veri kümesi varsayılan "namelist.input" dosyasıyla conus2,5 km'dir.
Grafik, farklı BIOS yapılandırmalarında WRF-conus2.5km veri kümesi çalıştırılırken elde edilen saniye cinsinden mutlak ortalama zaman adımını çizer. Elde edilen ortalama zaman adımı y ekseninde çizilir, daha düşük daha iyidir. Ortalama zaman adımının belirli değerleriyle ilişkili göreli profiller x ekseninde çizilir.
Grafikteki gözlemler aşağıdadır:
- SNC=Etkin ile %2 daha iyi performans.
- Yazılım Önceden Getirme Etkin ve Devre Dışı durumunda performans farkı yoktur.
- Performans profili, PerformancePerWattDAPC profillerinden %1 daha iyidir
Şekil 6'dan Şekil 9'a kadar, sırasıyla Ice_2m, Combustor_12m, Aircraft_Wing_14m ve Exhaust_System_33m veri kümesiyle Fluent çalıştırılırken elde edilen Çözücü Derecelendirmesini çizer. Elde edilen Çözücü Derecelendirmesi y ekseninde çizilir, Daha yüksek daha iyidir. Ortalama sürenin belirli değerleriyle ilişkili göreli profiller x ekseninde çizilir.
Yukarıdaki grafiklerden elde edilen genel gözlemler aşağıdadır:
- SNC=Etkin ile %4'e kadar daha iyi performans.
- Yazılım Önceden Getirme özelliğinin performans üzerinde hiçbir etkisi yoktur.
- DAPC ve işletim sistemi profillerine kıyasla Performans profili ile %2'ye kadar daha iyi performans.
Sonuç
Bu çalışmada, Intel Xeon Gold 6230 işlemci kullanılırken farklı BIOS ayarlama seçeneklerinin performans üzerindeki etkisini değerlendirdik. Farklı karşılaştırma testleri ve uygulamalarda farklı BIOS seçeneklerinin performansını gözlemleyerek şu sonuca varılmıştır:
- Yazılım Önceden Getirmenin , test edilen veri kümeleri üzerinde önemli bir performans etkisi yoktur. Bu nedenle, Software Prefetcher'ın varsayılan olarak, yani Etkin olarak kalmasını öneririz
- SNC=Etkin ile Fluent ve Stream'de %2-4 performans artışı, SNC = Devre Dışı ile karşılaştırıldığında WRF'de yaklaşık %1. Bu nedenle, daha iyi performans elde etmek için SNC'nin etkinleştirilmesini öneririz .
- Performans profili, PerformancePerWattDAPC ve PerformancePerWattOS'tan %2-4 daha iyidir. Bu nedenle HPC için Performans Profilini öneririz .
Genel amaçlı HPC kümeleri için Hyper Threading'in kapatılması önerilir. Kullanılan uygulamalara bağlı olarak, bu özelliğin yararı test edilmeli ve uygun şekilde etkinleştirilmelidir.
Bu çalışmada ele alınmayan, bir sistem x4 DRAM organizasyonuna (32 GB, 64 GB DIMM'ler) sahip bir bellekle yapılandırıldığında kullanılabilen Uyarlamalı Çift DRAM Aygıt Düzeltmesi (ADDDC) adı verilen bir bellek RAS özelliğidir. Bir sistemde x8 tabanlı DIMM'ler (8 GB, 16 GB) olduğunda ve bu yapılandırmalarda önemli değilse ADDDC kullanılamaz. HPC iş yükleri için, ayarlanabilir bir seçenek olarak kullanılabilir olduğunda ADDDC'nin devre dışı olarak ayarlanması önerilir.