Garima Kochhar, Deepthi Cherlopalle, Joshua Weage. HPC ve AI İnovasyon Laboratuvarı, Ekim 2019
Geçerli Değil
Günümüz HPC dünyasında, AMD'nin Rome kod adlı en yeni nesil EPYC işlemcisinin tanıtıma ihtiyacı yok. Son birkaç aydır HPC ve AI Innovation Lab'de Roma tabanlı sistemleri değerlendiriyorduk ve Dell Technologies kısa süre önce bu işlemci mimarisini destekleyen sunucuları duyurdu
. Rome serisinin bu ilk blogunda Rome işlemci mimarisi, HPC performansı için nasıl ayarlanabileceği ele alınacak ve ilk mikro kıyaslama performansı sunulacaktır. Sonraki bloglar, CFD, CAE, moleküler dinamik, hava durumu simülasyonu ve diğer uygulamalar alanlarındaki uygulama performansını açıklayacaktır.
Rome, AMD'nin 1. nesil Napoli'yi yenileyen 2. nesil EPYC CPU'sudur. Geçen yıl bu blogda Napoli'yi tartışmıştık.
Napoli ve Roma arasında HPC'ye avantaj sağlayan en büyük mimari farklardan biri, Roma'daki yeni G/Ç kalıbıdır. Roma'da her işlemci, Şekil 1'de gösterildiği gibi en fazla 9 yongadan oluşan çok yongalı bir pakettir. Tüm GÇ ve bellek işlevlerini içeren bir merkezi 14nm GÇ kalıbı vardır - bellek denetleyicilerini, soket içindeki Infinity yapı bağlantılarını ve soketler arası bağlantıyı ve PCI-e'yi düşünün. 3200 MT/sn'de DDR4 çalıştıran sekiz bellek kanalını destekleyen soket başına sekiz bellek denetleyicisi vardır. Tek soketli bir sunucu en fazla 130 PCIe Gen4 şeridini destekleyebilir. Çift soketli bir sistem en fazla 160 PCIe Gen4 şeridini destekleyebilir.
(Şekil 1: Bir merkezi IO kalıbı ve sekiz adede kadar çekirdek kalıbı içeren Roma çok çipli paket)
Merkezi IO kalıbını çevreleyen sekiz adede kadar 7nm çekirdek yonga seti bulunur. Çekirdek yonga, Çekirdek Önbellek kalıbı veya CCD olarak adlandırılır. Her CCD, Zen2 mikro mimarisine, L2 önbelleğe ve 32MB L3 önbelleğe dayalı CPU çekirdeklerine sahiptir. CCD'nin kendisinde iki Çekirdek Önbellek Kompleksi (CCX) vardır, her CCX'in dört adede kadar çekirdeği ve 16 MB L3 önbelleği vardır. Şekil 2'de bir CCX gösterilmektedir.
(Şekil 2 : Dört çekirdekli ve paylaşımlı 16 MB L3 önbelleğe sahip bir CCX)
Farklı Rome CPU modellerifarklı sayıda çekirdeğe sahiptir,
ancak hepsinde bir merkezi IO kalıbı vardır.
En üst uçta 64 çekirdekli bir CPU modeli, örneğin EPYC 7702 var. lstopo çıkışı bize bu işlemcinin soket başına 16 CCX'e sahip olduğunu, her CCX'in Şekil 3 ve 4'te gösterildiği gibi dört çekirdeğe sahip olduğunu ve böylece soket başına 64 çekirdek verdiğini gösteriyor. CCX başına 16 MB L3, yani CCD başına 32 MB L3, bu işlemciye toplam 256 MB L3 önbellek sağlar. Bununla birlikte, Roma'daki toplam L3 önbelleğinin tüm çekirdekler tarafından paylaşılmadığını unutmayın. Her CCX'teki 16MB L3 önbellek bağımsızdır ve Şekil 2'de gösterildiği gibi yalnızca CCX'teki çekirdekler tarafından paylaşılır.
EPYC 7402 gibi 24 çekirdekli bir CPU, 128 MB L3 önbelleğe sahiptir. Şekil 3 ve 4'teki lstopo çıkışı, bu modelin CCX başına üç çekirdeğe ve soket başına 8 CCX'e sahip olduğunu göstermektedir.
(64 çekirdekli ve 24 çekirdekli CPU'lar için Şekil 3 ve 4 lstopo çıkışı)
CCD'lerin sayısı ne olursa olsun, her Rome işlemcisi mantıksal olarak dört çeyreğe bölünmüştür ve CCD'ler kadranlara mümkün olduğunca eşit bir şekilde dağıtılır ve her kadranda iki bellek kanalı bulunur. Merkezi GÇ kalıbının, soketin dört kadranını mantıksal olarak desteklediği düşünülebilir.
Roma'daki merkezi IO kalıbı, Napoli'de ölçülenlere göre bellek gecikmelerini iyileştirmeye yardımcı olur. Ayrıca, CPU'nun tek bir NUMA etki alanı olarak yapılandırılmasına olanak tanıyarak soketteki tüm çekirdekler için tek tip bellek erişimi sağlar. Bu aşağıda açıklanmıştır.
Bir Rome işlemcisindeki dört mantıksal kadran, CPU'nun farklı NUMA etki alanlarına bölümlenmesini sağlar. Bu ayara soket başına NUMA veya NPS adı verilir.
En iyi bellek bant genişliğini, en düşük bellek gecikme sürelerini sağlaması beklendiğinden ve uygulamalarımız NUMA'yı tanıma eğiliminde olduğundan, kullanılabilir olduğunda HPC için NPS4 önerilir. NPS4'ün kullanılamadığı durumlarda, CPU modeli tarafından desteklenen en yüksek NPS olan NPS2'yi ve hatta NPS1'i öneririz.
Rome tabanlı platformlarda bulunan çok sayıda NUMA seçeneği göz önüne alındığında, PowerEdge BIOS, MADT numaralandırması altında iki farklı çekirdek numaralandırma yöntemine izin verir. Doğrusal numaralandırma sayıları çekirdekleri sırayla, bir sonraki sokete geçmeden önce bir CCX, CCD, soketi doldurur. 32c CPU'da 0 ile 31 arasındaki çekirdekler ilk sokette, 32-63 arasındaki çekirdekler ikinci sokette yer alır. Çevrimsel sıralı numaralandırma, NUMA bölgelerindeki çekirdekleri numaralandırır. Bu durumda, çift sayılı çekirdekler ilk sokette, tek sayılı çekirdekler ikinci sokette olacaktır. Kolaylık olması açısından, HPC için doğrusal numaralandırmayı öneririz. NPS4'te yapılandırılmış çift soketli 64c sunucuda doğrusal çekirdek numaralandırması örneği için Şekil 5'e bakın. Şekilde, dört çekirdekten oluşan her kutu bir CCX'tir, her bitişik sekiz çekirdek seti bir CCD'dir.
(Şekil 5 Çift soketli sistemde doğrusal çekirdek numaralandırması, soket başına 64c, 8 CCD CPU modelinde NPS4 yapılandırması)
Roma'ya özgü başka bir BIOS seçeneği ise Tercih Edilen GÇ Aygıtı olarak adlandırılır. Bu, InfiniBand bant genişliği ve mesaj hızı için önemli bir ayar düğmesidir. Platformun bir IO cihazı için trafiğe öncelik vermesini sağlar. Bu seçenek hem tek soketli hem de iki soketli Rome platformlarında mevcuttur ve tüm CPU çekirdekleri etkin olduğunda tam ileti hızı elde etmek için BIOS menüsünde tercih edilen cihaz olarak platformdaki InfiniBand aygıtı seçilmelidir.
Napoli'ye benzer şekilde, Roma da hiper iş parçacığı veya mantıksal işlemciyidestekler. HPC için bunu devre dışı bırakıyoruz, ancak bazı uygulamalar mantıksal işlemciyi etkinleştirmeden fayda sağlayabilir. Moleküler dinamik uygulama çalışmaları ile ilgili sonraki bloglarımıza bakın.
Napoli'ye benzer şekilde Roma, NUMA Etki Alanı olarak CCX'e de izin verir. Bu seçenek her CCX'i bir NUMA düğümü olarak gösterir. CPU başına 16 CCX bulunan çift soketli CPU'lara sahip bir sistemde, bu ayar 32 NUMA etki alanını açığa çıkarır. Bu örnekte, her sokette 8 CCD, yani 16 CCX bulunur. Her CCX, soket başına 16 NUMA düğümü ve iki soketli bir sistemde 32 NUMA düğümü sağlayarak kendi NUMA etki alanı olarak etkinleştirilebilir. HPC için CCX'i varsayılan devre dışı seçeneğinde NUMA Etki Alanı olarak bırakmanızı öneririz. Bu seçeneğin etkinleştirilmesinin sanallaştırılmış ortamlara yardımcı olması beklenir.
Napoli'ye benzer şekilde Roma, sistemin Performans Belirleyiciliği veya Güç Belirleyiciliği modunda ayarlanmasına izin verir. Performans Belirleyiciliği'nde sistem, CPU modeli için beklenen frekansta çalışarak birden çok sunucu arasındaki değişkenliği azaltır. Güç Belirleyiciliği'nde sistem, CPU modelinin mevcut maksimum TDP'sinde çalışır. Bu, üretim sürecindeki parçadan parçaya varyasyonu artırarak bazı sunucuların diğerlerinden daha hızlı olmasını sağlar. Tüm sunucular CPU'nun maksimum nominal gücünü tüketerek güç tüketimini belirleyici hale getirebilir, ancak birden çok sunucu arasında bazı performans değişikliklerine izin verebilir.
PowerEdge platformlarından beklediğiniz gibi, BIOS'ta Sistem Profili adı verilen bir meta seçenek vardır. Performans İçin Optimize Edilmiş sistem profilinin seçilmesi turbo boost modunu etkinleştirir, C durumlarını devre dışı bırakır ve belirleyicilik kaydırıcısını Performans için optimize etmek üzere Güç Belirleyiciliği olarak ayarlar.
Okurlarımızın çoğu doğrudan bu bölüme atlamış olabilir, bu yüzden hemen dalacağız.
HPC ve AI İnovasyon Laboratuvarı'nda, Minerva adını verdiğimiz 64 sunuculu Roma tabanlı bir küme oluşturduk. Homojen Minerva kümesine ek olarak, değerlendirebildiğimiz birkaç Rome CPU örneğimiz daha var. Test ortamımız Tablo.1 ve Tablo.2'de açıklanmıştır.
(Tablo.1 Bu çalışmada değerlendirilen Rome CPU modelleri)
CPU | Soket Başına Çekirdek | Config | Taban Saat Hızı | TDP |
---|---|---|---|---|
7702 | 64c | CCX başına 4c | 2,0 GHz | 200 W |
7502 | 32c | CCX başına 4c | 2,5 GHz | 180 W |
7452 | 32c | CCX başına 4c | 2,35 GHz | 155 W |
7402 | 24c | CCX başına 3c | 2,8 GHz | 180 W |
(Tablo 2 Test Ortamı )
Bileşen | Ayrıntılar |
---|---|
Sunucu | PowerEdge C6525 |
İşlemci | Tablo 1 de gösterildiği gibi çift soketli |
Bellek | 256 GB, 16x16 GB, 3200 MT/sn, DDR4 |
Interconnect | ConnectX-6 Mellanox Infini Bant HDR100 |
İşletim Sistemi | Red Hat Enterprise Linux 7.6 |
Kernel | 3.10.0.957.27.2.e17.x86_64 |
Disk | 240 GB SATA SSD M.2 modülü |
Roma'daki bellek bant genişliği testleri Şekil 6'da sunulmuştur, bu testler NPS4 modunda çalıştırılmıştır. Çift soketli PowerEdge C6525 sistemimizde, Tablo 1'de listelenen dört CPU modelinde sunucudaki tüm çekirdekleri kullanırken ~270-300 GB/sn bellek bant genişliği ölçtük. CCX başına yalnızca bir çekirdek kullanıldığında, sistem bellek bant genişliği tüm çekirdeklerle ölçülenden ~%9-17 daha yüksektir.
Çoğu HPC iş yükü, sistemdeki tüm çekirdeklere tam olarak abone olur veya HPC merkezleri, her sunucuda birden fazla işle yüksek aktarım hızı modunda çalışır. Bu nedenle tüm çekirdek bellek bant genişliği, sistemin bellek bant genişliği ve çekirdek başına bellek bant genişliği özelliklerinin daha doğru temsilidir.
Şekil 6'da, soket başına sekiz bellek kanalını destekleyen ancak 2667 MT/sn'de çalışan önceki nesil EPYC Naples platformunda ölçülen bellek bant genişliği de gösterilmektedir. Rome platformu, Napoli'den %5 ila %19 daha iyi toplam bellek bant genişliği sağlar ve bunun nedeni ağırlıklı olarak daha hızlı 3200 MT/sn bellektir. Soket başına 64c ile bile, Rome sistemi 2 GB/sn/çekirdek'e kadar güç sağlayabilir.
Farklı NPS yapılandırmaları karşılaştırıldığında, Şekil 7'de gösterildiği gibi NPS1'e kıyasla NPS4 ile ~%13 daha yüksek bellek bant genişliği ölçülmüştür.
(Şekil 6 : Çift soketli NPS4 STREAM Triad bellek bant genişliği)
(Şekil 7 : NPS1'e karşı NPS2'ye karşı NPS 4 Bellek bant genişliği)
Şekil 8'de, tek yönlü ve çift yönlü testler için tek çekirdekli InfiniBand bant genişliği gösterilmektedir. Test ortamı, 100 Gb/sn'de çalışan HDR100'ü kullandı ve grafik, bu testler için beklenen hat hızı performansını gösterir.
Şekil 8 InfiniBand bant genişliği (tek çekirdekli))
Şekil 9 InfiniBand mesaj hızı (tüm çekirdekler))
Mesaj hızı testleri, test edilen iki sunucudaki bir soketteki tüm çekirdekler kullanılarak gerçekleştirildi. BIOS'ta Tercih Edilen GÇ etkinleştirildiğinde ve ConnectX-6 HDR100 adaptörü tercih edilen aygıt olarak yapılandırıldığında, tüm çekirdek mesaj hızı, Şekil 9'da gösterildiği gibi Tercih Edilen GÇ'nin etkinleştirilmediği duruma göre önemli ölçüde daha yüksektir. Bu, HPC ve özellikle çok düğümlü uygulama ölçeklenebilirliği için ayarlama yaparken bu BIOS seçeneğinin önemini gösterir.
Roma mikro mimarisi, 8 FLOPS/döngü olan Napoli'nin iki katı olan 16 DP FLOP/döngüyü emekliye ayırabilir. Bu, Roma'ya Napoli'ye göre 4 kat teorik en yüksek FLOPS, gelişmiş kayan nokta yeteneğinden 2 kat ve iki kat çekirdek sayısından 2 kat (64c'ye karşı 32c) verir. Şekil 10, Napoli tabanlı bir sistemden elde ettiğimiz önceki sonuçlarımızla birlikte test ettiğimiz dört Rome CPU modeli için ölçülen HPL sonuçlarını göstermektedir. Rome HPL verimliliği, grafikteki çubukların üzerindeki yüzde değeri olarak belirtilir ve daha düşük TDP CPU modelleri için daha yüksektir.
Testler Güç Belirleyiciliği modunda gerçekleştirilmiştir ve aynı şekilde yapılandırılmış 64 sunucuda performansta ~%5'lik bir delta ölçülmüştür. Buradaki sonuçlar bu performans bandındadır.
(Şekil 10 : NPS4'te tek sunucu HPL)
Daha sonra çok düğümlü HPL testleri gerçekleştirildi ve bu sonuçlar Şekil 11'de çizildi. EPYC 7452 için HPL verimlilikleri 64 düğümlü bir ölçekte %90'ın üzerinde kalır, ancak verimlilikteki %102'den %97'ye ve %99'a kadar olan düşüşlerin daha fazla değerlendirilmesi gerekir
(Şekil 11 : Çok düğümlü HPL, HDR100 InfiniBand üzerinden çift soketli EPYC 7452)
Rome merkezli sunucular üzerinde yapılan ilk performans çalışmaları, ilk HPC karşılaştırma testlerimiz için beklenen performansı göstermektedir. En iyi performans için yapılandırma yaparken BIOS ayarı önemlidir ve fabrikada yapılandırılabilen veya Dell EMC sistem yönetimi yardımcı programları kullanılarak ayarlanabilen BIOS HPC iş yükü profilimizde ayarlama seçenekleri mevcuttur.
HPC ve AI Innovation Lab, 64 sunuculu yeni bir Rome tabanlı PowerEdge kümesi Minerva'ya sahiptir. Yeni Minerva kümemizdeki uygulama performansı çalışmalarını açıklayan sonraki bloglar için bu alanı izleyin.