×

Veri (Bilimi) Merkezleri için Bütünleşik Ağlar (RoCE) Bölüm-2




Veri (Bilimi) Merkezleri için Bütünleşik Ağlar (RoCE)
Bölüm-2


Celal Ünalp 


 
YZ Hesaplamalarının Karakteristiği

Geleneksel veri merkezi hizmetleri (web, veri tabanı ve dosya depolama) daha küçük parçalara ayrılması mümkün olmayan iş birimi (transaction) tabanlıdır ve hesaplanan sonuçlar genellikle belirlilik ilkelerini yansıtır. Deterministik bir sistem, gelecekteki durumlarının gelişmesinde rastgelelik bulunmayan bir prensibi benimser. Belirli bir model bu nedenle her zaman belirli bir başlangıç koşulundan veya başlangıç durumundan aynı çıktıyı üretir. Ancak bu tür görevler için, tek bir işlem ile ilişkili ağ iletişimi arasında çok az korelasyon veya bağımlılık vardır. Geleneksel işlemlerin oluşumu ve süresi rastgeledir.

YZ hesaplama ise yinelemeli yakınsama ile bir optimizasyon problemi çözeceği için oldukça farklıdır. Bu, veri kümeleri ve hesaplama algoritmaları içinde yüksek uzamsal korelasyona neden olur ve iletişim akışları arasında geçici desenler oluşturur.

YZ hesaplamaları, daha önce anlatıldığı gibi büyük veriler üzerinde çalışır ve hızlı veri erişimi gerektirir. Bilgi işleme modeli ve girdi veri kümeleri çok büyük (Örn. 100 MB'lik bir düğümde, 10K kurallı YZ modeli 4 TB'tan fazla bellek gerektirir) olduğundan tek bir sunucu, sorunu sırayla işlemek için yeterli depolama kapasitesi ve işleme kaynakları sağlayamaz. Bunu başarmak için, sorunu “böl ve fethet” ile paralel olarak işlemelidir.

Bu durumda işlem süresini kısaltmak için eşzamanlı YZ hesaplama ve depolama düğümleri gerekir. Bu dağıtılmış YZ hesaplama ve depolama gereksinimi, model paralel hesaplama ve veri paralel hesaplama olmak üzere iki farklı paralel çalışma modunu destekleme esnekliğine sahip hızlı, verimli ve kayıpsız bir veri merkezi ağına olan ihtiyacı vurgular.

Model Paralel Hesaplama

Model paralel hesaplamada, her düğüm genel algoritmanın bir bölümünü hesaplar.

Her düğüm, aynı büyük veri kümesini işler, ancak algoritmanın farklı bir bölümüyle, farklı bir parametre kümesi için bir tahminle sonuçlanır.

Düğümler, tüm veri parametreleri için en iyi tahmine yakınsamak için tahminlerini değiştirir.

Model paralel hesaplama ile, ortak büyük veri setinin dağıtılmış sayıda düğüme bir ilk dağıtımı işlemi vardır, ardından katılan düğümlerin her birinden ayrı parametrelerin bir koleksiyonu gelir.

 
Veri Paralel Hesaplama

Veri paralel hesaplamada, her düğüm tüm YZ algoritma modelini yükler, ancak büyük verinin yalnızca bir kısmını işler.

Her düğüm, büyük verilerin farklı bir görünümünü kullanarak aynı parametre kümesini tahmin etmeye çalışır.

Bir düğüm bir dizi hesaplamayı tamamladığında, parametreler ortak bir parametre sunucusu tarafından ağırlıklandırılır ve toplanır.

Ağırlıklı parametre güncellemesi, tüm düğümlerin bilgileri eşzamanlı olarak yüklemesini gerektirir.


Model ve Veri Paralel Hesaplama

Tabii ki, bu yaklaşımlar birbirini dışlamaz. Çoklu GPU sistemlerinden oluşan bir hesaplama kümesinde her makine için model paralelliği (GPU'lar arasında bölünmüş model) ve makineler arasında veri paralelliği kullanılabilmektedir.
Hem veri paralelliğinde hem de model paralelliğinde çeşitli kısıtlamalar mevcuttur. Veri paralelliği için, çok fazla hesaplama düğümü varsa sorunsuz bir eğitim sürecini sürdürmek için öğrenme oranını düşürmemiz gerekir.

Model paralelliği için, çok fazla düğümümüz varsa, iletişim masrafı uğruna ağın performansı önemli ölçüde azalacaktır.

Model paralelliği, çok sayıda nöron aktivitesi ile iyi bir performans elde edebilir ve eş zamanlı olarak veri paralelliği, çok sayıda ağırlıkla verimliliği artırabilir.

Paralel hesaplama yaklaşımı ne olursa olsun, veri merkezi ağları zorlu iletişimin baskısını hissedecek, ağ darboğaz haline geldiğinde, hesaplama kaynakları için bekleme süresi işin tamamlanma süresinin %50'sini geçebilecektir.

Çoktan Bire (n*1) Ağ Tıkanıklığı (Incast Collapse)

Tüm YZ uygulamalarında, hesaplama modeli yinelemelidir ve çoktan bire yönlü ağ tıkanıklığı oluşturan bir senkronizasyon adımı gerektirir.

YZ eğitim süreci yinelemelidir ve her yinelemede senkronize edilen birçok parametre vardır. Hesaplama düğümleri modeli(M) indirir ve bir senkronizasyon adımı sırasında yeni hesaplanan sonuçları (ΔM) bir parametre sunucusuna yükler.

Parametre sunucusuna yükleme, çoktan bire yönlü ağ tıkanıklığı oluşturur. Yeni bir bilgi işleme teknolojisi devreye alınarak hesaplama süresi iyileştirildiğinde, ağ üzerindeki baskı ve bunun sonucunda ortaya çıkan veri aktarımı artar.

Çalışan düğümler ve parametre sunucusu arasındaki iletişim, birbirine bağlı ağ akışlarının bir koleksiyonunu oluşturur.

Dağıtılmış YZ hesaplamanın yineleme sürecinde, milisaniyeler içinde çalışan düğümlere dağıtılan veriler için çok kısa sürede çok yüksek debili trafik akışı oluşturulur ve ardından, ara parametreler teslim edildiğinde ve güncellendiğinde parametre sunucusuna yönlendirilen daha küçük boyutlu akışlardan oluşan çoktan bire yönlü ağ tıkanıklığı olayı meydana gelir.

Bu akışların değişimi sırasında ağda paket kaybı, tıkanıklık ve yük dengesizliği meydana gelebilir. Sonuç olarak, bazı akışların Akış Tamamlanma Süresi (FCT) uzar. Birkaç akış ertelenirse, depolama ve bilgi işlem kaynağı kapasitesinin altında kullanılabilmiş olur. Sonuç olarak, tüm uygulamanın tamamlanma süresi gecikir.

Dağıtılmış YZ hesaplamaları senkronizedir ve işlerin öngörülebilir bir tamamlanma süresine sahip olması arzu edilir.

Tıkanıklık olmadığında, ağ genelinde dinamik gecikme küçüktür ve ortalama FCT'nin tahmin edilebilir olmasını sağlar ve bu nedenle tüm uygulamanın performansı tahmin edilebilir.

Tıkanıklık, dinamik gecikmenin paket kaybına neden olacak kadar artmasına neden olduğunda, FCT öngörülemez olabilir. Ortalama tamamlanma süresinden çok daha uzun bir sürede tamamlanan akışlar, kuyruk gecikmesi olarak bilinen duruma katkıda bulunur.

Kuyruk gecikmesi, bir sistemden, hizmet ettiği giriş/çıkış isteklerine verilen tüm yanıtlar arasında, yanıt sürelerinin çoğuna kıyasla en uzun süren yanıt sürelerinin küçük bir yüzdesidir. Kuyruk gecikmesini mümkün olduğunca azaltmak, paralel algoritmaların ve tüm dağıtılmış hesaplama sisteminin başarısı için son derece önemlidir. Veri merkezinde bilgi işlem kaynaklarının kullanımını en üst düzeye çıkarmak için kuyruk gecikmesi ele alınmalıdır.

YZ Hesaplamalarına Hız Kazandıran Teknolojik Gelişmeler

Gelişen gereksinimler ve gelişen teknolojiler uyumlu hale geldiğinde ilerleme kendiliğinden ortaya çıkmaktadır. Yeni gereksinimler genellikle yeni teknolojilerin geliştirilmesini sağlar ve yeni teknolojiler genellikle yeni gereksinimlere yol açan yeni kullanım durumlarını mümkün kılar.

Ağa bağlı depolama, dağıtılmış hesaplama, sistem mimarisi ve ağ protokollerindeki atılımlar, YZ hesaplamalarının yeni nesil veri merkezi kaldıracıyla ilerlemesini hızlandırmaktadır.


SSD ve NVMeoF (Yüksek Debili, Düşük Gecikmeli Ağlar)

Ağa bağlı depolamada, G/Ç hızlandırma ve yedeklilik için bir dosya birden çok depolama sunucusuna dağıtılır.

Bir veri merkezi uygulaması bir dosyayı okuduğunda, aynı anda farklı sunuculardan farklı veri bölümlerine erişir. Veriler, neredeyse aynı anda bir veri merkezi anahtarı aracılığıyla toplanır.

Bir veri merkezi uygulaması bir dosya yazdığında, verilerin yazılması, dağıtılmış ve yedekli depolama düğümleri arasında bir dizi depolama işlemini tetikleyebilir.

Orijinal yazma eylemi yerine getirilmeden(tasdik) önce tüm işlem silsilesinin tamamlanması gerekir.

Birincil depolama sunucusuna yazılan toplu veriler, replikalara birden çok kez iletilir. Küçük boyutlu alındı bildirimleri ve taahhüt mesajları sıralanmalı ve en sonunda işlem tamamlanabilmeden önce kaynak istemciye teslim edilmelidir, bu da ultra düşük gecikme ihtiyacını doğuracaktır.

Teknoloji, Non‐Volatile Memory Express (NVMe) arabirim spesifikasyonu kullanılarak HDD'den SSD'ye ve SCM'ye evrildikçe, depolama performansında büyük gelişmeler sağlandı. Depolama ortamına NVMe üzerinden erişim, önceki HDD teknolojisine göre erişim süresini 1000 kat azalttı.

NVMe-over-fabrics (NVMeoF), ağ bağlantılı depolama için NVMe'nin konuşlandırılmasını içerir. Ortamın çok daha yüksek erişim hızı, daha büyük ağ darboğazlarına neden olur ve ağ gecikmesinin etkisi daha önemli hale gelir.

Depolama hizmetleri ve diğer yüklü trafikler bilgisayar ağlarında, “Elephant Flow” denilen bir ağ bağlantısı üzerinden ölçülen bir TCP (veya başka bir protokol ile) akışı tarafından oluşturulan çok büyük ve sürekli akışlar oluşturur. Elephant Flow, uzun süreli olmasa da, bir süre boyunca toplam bant genişliğinin orantısız bir payını işgal edebilir.

Geçmişte ağ gecikmesi, uçtan uca ağa bağlı HDD depolama gecikmesinin ihmal edilebilir bir parçasıydı, ancak ağa bağlı SCM gündeme geldiğinde gecikmenin önemli bir bileşeni olacağı kesindir. Bu sebeple IOPS performansını en üst düzeye çıkarmak için öncelikle ağ gecikme sorununun çözülmesi gerekecektir.

Ağ mühendisliğinde statik gecikme ve dinamik gecikme şeklinde iki farklı gecikme türü vardır.

Statik gecikme, seri veri gecikmesini, cihaz iletme gecikmesini ve optik/elektrik iletim gecikmesini içerir. Bu gecikme türü, anahtarlama donanımının kapasitesi ve verilerin iletim mesafesi ile belirlenir.

Genellikle sabittir ve çok öngörülebilirdir. Statik gecikme için mevcut endüstri ölçümlerinin genellikle nanosaniye (10^-9 saniye) veya mikrosaniye altı (10^-6) seviyesinde olduğunu ve uçtan uca toplam ağ gecikmesinin %1'inden daha azını oluşturduğunu bilinmektedir.

Dinamik gecikme toplam uçtan uca ağ gecikmesinde çok daha büyük bir rol oynar ve iletişim ortamındaki koşullardan büyük ölçüde etkilenir.

Dinamik gecikme, ağ tıkanıklığı ve paket kaybının neden olduğu dahili kuyruğa alma ve paket yeniden iletiminin getirdiği gecikmelerden oluşturulur.

Paralel yapay zeka bilgi işlem modelleri, yoğun ağ tıkanıklığına neden olan benzersiz trafik desenleri oluşturur. Düşük uçtan uca ağ gecikmesinin anahtarı, dinamik gecikmeyi ele almaktır ve dinamik gecikmeyi ele almanın anahtarı, tıkanıklığı azaltmaktır.

Dinamik gecikmenin ana bileşeni, paketler ağ ortamından düşürüldüğünde paketlerin yeniden iletilmesinden kaynaklanan gecikmedir. Paket kaybı gecikmesi, kuyruk gecikmesinden daha üst düzey bir büyüklüktür ve uygulamalar üzerinde ciddi bir etkiye sahip olduğu kanıtlanmıştır.

Temel olarak tıkanıklık nedeniyle anahtar arabellekleri aşıldığında paket kaybı meydana gelir. Paket kaybına yol açan iki temel tıkanıklık türü vardır. Ağ içi tıkanıklık ve çoktan bire yönlü ağ tıkanıklığı.

Ağ yapısı içindeki anahtardan anahtara bağlantılarda, belki de etkisiz yük dengeleme nedeniyle bağlantılar aşırı yüklendiğinde ağ içi tıkanıklık oluşur.

Ağ yapısı içindeki anahtardan anahtara bağlantılarda, belki de etkisiz yük dengeleme nedeniyle bağlantılar aşırı yüklendiğinde ağ içi tıkanıklık oluşur.

Birçok kaynak aynı anda ortak bir hedefe gönderim yaptığında, ağın uç/kenar/kanat noktalarında aktarım tıkanıklığı oluşur.

YZ hesaplama modellerinin doğası gereği, verilerin bir işleme yinelemesinden sonra toplandığı bir aşama vardır. Bu aşamadan itibaren çoktan bire yönlü ağ tıkanıklığı kolayca oluşur.


GPU (Paralel Bilgi İşlem için Ultra-Düşük Gecikmeli Ağlar)

Günümüzün YZ bilgi işlem mimarisi, CPU'lar ve Grafik İşlem Birimleri'nin (GPU'lar) hibrit bir karışımını içerir.

Başlangıçta video oyunlarının olağanüstü hızlarda işlenmesine yardımcı olmak için icat edilen GPU'lar, veri merkezinde yeni bir kullanım alanı buldu. GPU, milyonlarca matematiksel işlemi paralel olarak gerçekleştirebilen binlerce çekirdeğe sahip özelleştirilmiş bir işlemcidir.

Tüm YZ öğrenme algoritmaları, karmaşık istatistiksel hesaplamalar gerçekleştirir ve bir GPU için mükemmel şekilde uygun olan çok sayıda matris çarpma işlemiyle ilgilenir.

Ancak, bir veri merkezindeki günümüzün YZ uygulamalarının ihtiyaçlarını karşılamak üzere YZ hesaplama mimarisini ölçeklendirmek için GPU'ların dağıtılması ve bu dağıtık yapıların bütünleşik bir ağa bağlanması gerekir. Bu, iletişim hacmi ve performansı konusunda katı gereksinimleri beraberinde getirir.

GPU'lar, günümüzün CPU mimarilerinden çok daha yüksek bellek bant genişliği sağlar. Birden fazla GPU'ya sahip düğümler, güç verimliliği ve donanım paralelliği nedeniyle artık yüksek başarımlı hesaplamalarda yaygın olarak kullanılmaktadır.

 

Her biri bir ana bilgisayardan (CPU'lar) ve bir PCI-e anahtarı veya NVLink ile bağlanan birkaç GPU cihazından oluşan çoklu GPU düğümlerine sahip bir mimaride her GPU, nispeten büyük yerel cihaz belleğine, çok daha küçük ve daha hızlı paylaşılan belleğe ve ana bilgisayar düğümünün DRAM'ının sıfır kopyalı bellek adı verilen küçük, sabitlenmiş alanına doğrudan erişebilir.

SmartNIC (Yazılım Tanımlı ve Programlanabilir Ağ Kartları)

Yıllar geçtikçe, CPU hızlarındaki ve Ethernet bağlantılarındaki performans iyileştirmelerinin birbirini gölgede bıraktığı dönemler olmuştur.

Bazı tarihsel dönemlerde, geleneksel bir CPU'nun hesaplama kapasitesi, bir Ethernet bağlantısının yükünü ve ucuz bir ağ arabirim kartının (NIC) tüm ağ yığınını yazılımla yönetme esnekliğini karşılamak için fazlasıyla yeterliydi ve net bir fayda sağlanıyordu.

Diğer dönemlerde, IEEE 802.3 standartlarının bir sonraki yinelemesinden itibaren bağlantı hızındaki sıçrama, işlemcinin üstesinden gelemeyeceği kadar fazlaydı ve Ethernet bağlantısını kullanmak için özel donanım yük aktarımlarına sahip daha pahalı ve karmaşık bir SmartNIC yaklaşımı gerekli hale geldi.

Zaman geçtikçe ve SmartNIC yük aktarma ve boşaltma kabiliyetleri olgunlaştıkça, bazı kullanımlar standart hale gelmiş ve artık sıradan bir ağ kartı olarak kabul edilen şeyin temel özelliklerine dahil edilmeye başlanmıştır.
Bu fenomen, ilk olarak “TCP sağlama toplamı boşaltmayı”, “büyük segment göndermeyi” ve “alma tarafı ölçeklendirmeyi” destekleyen TCP Boşaltma Motorunun (TOE) gelişiyle görülmüştür.



Kaynak: Ethernet Alliance

Günümüz dünyasında, Ethernet bağlantı hızları artmaya devam ederken Moore yasasının ortadan kalktığına dair işaretler belirmektedir. IEEE 802.3'ün en son yinelemesi hızları 800 Gbps'ye taşımış, modern veri merkezindeki yazılım tanımlı ağ oluşturma, sanallaştırma, depolama, mesaj iletme ve güvenlik protokollerinin ek karmaşıklığı ile bu farklılığın birleşimi, SmartNIC mimarisinin burada kalacağına dair güçlü bir argüman ortaya koymuştur.

SmartNIC, tüm tipik NIC işlevlerini içerir, ancak aynı zamanda sunucu CPU'su ve GPU'sunda çalışan uygulamaları hızlandırmaya yardımcı olmak için önemli yükleri de üstlenir. SmartNIC, CPU'nun veya GPU'nun yerini almaz, bunun yerine bunları ağ aktarım yükleriyle tamamlar.


 


Anahtar yük aktarımlarından bazıları, sanal makine arayüzü desteği, paketlerin esnek eşleme eylemi işlemesi, yer paylaşımlı tünel sonlandırma ve başlatma, şifreleme, trafik ölçümü, şekillendirme ve akış başına istatistikleri içerir.
Ek olarak, SmartNIC'ler genellikle RDMA ve NVMe-oF depolama arayüzlerini desteklemek için tüm protokol boşaltmalarını ve doğrudan veri yerleştirmeyi de sağlar.

Günümüzün SmartNIC'lerinin yeni bir kritik bileşeni programlanabilirliktir. Geçmişte SmartNIC'lere yönelik bir eleştiri, hızla değişen ağ ortamına ayak uyduramamalarıydı. İlk bulut veri merkezi ortamları, çoğu ağ işlevi için CPU kullanımını tercih ediyordu çünkü NIC için gerekli özellik seti, donanımın geliştirme döngüsünden daha hızlı gelişiyordu. Ancak günümüzün SmartNIC'leri açık ve esnek bir programlama ortamına sahiptir.

SmartNIC’ler esas olarak, Linux ve Open vSwitch gibi diğer yazılım tanımlı ağ araçlarına dayalı açık kaynaklı bir geliştirme ortamına sahip bilgisayar içindeki bir bilgisayar olduğundan, hızlı özellik geliştirme ve kaldıraç sağlamak için açık kaynak ekosistemine sorunsuz bir şekilde entegre olması çok kolaydır.

Ancak YZ hesaplamaları gibi senaryolarda veri merkezindeki SmartNIC'ler, ağ üzerindeki genel kullanımı ve yükü artırır. Bir ağ bağlantısını tamamen ve hızlı bir şekilde satüre ederek tıkanıklığın etkilerini şiddetlendirebilirler.

SmartNIC'in programlanabilirliği, incast gibi durumlardan kaçınmak için ağ ile koordine olabilen yeni protokollere uyum sağlamasına olanak tanır ve böylece kesintili etkiyi hafifletmek ve paket kaybını önlemek için ağdan gelen tıkanıklık sinyallerine hızlı bir şekilde yanıt verebilirler.

Uzaktan Doğrudan Bellek Erişimi (Remote Direct Memory Access, RDMA)

Doğrudan bellek erişimi (DMA), CPU'nun müdahalesi olmaksızın bir bilgisayar sistemindeki bir kaynaktan başka bir kaynağa verilerin kopyalanmadan doğrudan aktarıldığı ve uzun süredir başarısı kanıtlanmış bir yöntemdir.

RDMA, ağ uygulamalarında sunucu tarafı veri işlemenin yüksek gecikme sorununu çözmek için tasarlanmış yeni bir teknolojidir. RDMA ile veriler, herhangi bir işletim sisteminin müdahalesi olmadan doğrudan bir bilgisayarın belleğinden diğerine aktarılır.

Bu, yüksek bant genişliğine, düşük gecikmeli ağ iletişimine izin verir ve özellikle büyük ölçüde paralel bilgisayar ortamlarında kullanım için uygundur.

RDMA, orijinal spesifikasyonu 1999'a dayanan kanıtlanmış bir teknolojidir. En zorlu yüksek performanslı ve düşük gecikme süreli sistemlere güç sağlamak için yaygın olarak kullanılır ve geniş bir işletim sistemi ve uygulama yelpazesi tarafından desteklenir.

RDMA'nın ilk ticari uygulaması InfiniBand (IB) ağlarıyla mümkün olmuştur. IB üzerinden RDMA, performans iyileştirmeleri sağlasa da özel bir IB ağ altyapısı satın alma, kurma ve destekleme maliyeti yüksektir. 10 GbE ve daha hızlı Ethernet ağlarının devreye alınmasıyla veri merkezleri, aynı anda TCP/IP, RDMA ve depolama trafiğini destekleyen yakınsanmış, bütünleşik ve yüksek performanslı bir altyapı kullanarak RDMA'nın faydalarını gerçekleştirebilmektedir.


 

RDMA protokolü için üç farklı aktarım vardır: InfiniBand, iWarp ve RoCE

InfiniBand

2000 yılında InfiniBand Trade Association (IBTA), RDMA desteğiyle ilk InfiniBand spesifikasyonunu yayınladı.

InfiniBand, güvenilir veri aktarımı ve uzak düğümlerin belleğine doğrudan erişim sağlayan verimli bir donanım köprüsü kurmak için tasarlanmıştır.

InfiniBand, özel InfiniBand anahtarları ve InfiniBand arabirim kartları gerektiren benzersiz bir ağ çözümüdür.


iWarp

iWarp, IETF tarafından 2014 yılında TCP üzerinden çalışacak şekilde tanımlanan bir RDMA protokolüdür.

TCP'yi bir aktarım olarak kullanmak, iWarp'ın Internet ve geniş alanın yanı sıra standart bir Ethernet ağını ve bir veri merkezi içinde katman sınırlaması olmadan dolaşmasını sağlar.

iWarp yazılım tanımlı (software defined) olarak uygulanabilirken, veri merkezi içerisinde istenilen performansı elde etmek için özel iWarp NIC kartları kullanılmaktadır.

Bütünleşik Ethernet (RoCE) üzerinden RDMA

(Birleşik Ethernet Üzerinden Uzaktan Doğrudan Bellek Erişimi)

Nisan 2010'da IBTA, InfiniBand Mimari Spesifikasyonunu Ethernet üzerinden InfiniBand'ı (IBoE) destekleme yeteneği ile zenginleştiren RoCEv1 spesifikasyonunu yayınladı.

RoCEv1 standardı, doğrudan Ethernet bağlantı katmanının üzerinde bir InfiniBand ağ katmanını belirtir. Sonuç olarak, RoCEv1 belirtimi IP yönlendirmeyi desteklemez. InfiniBand kayıpsız bir fiziksel aktarıma dayandığından, RoCEv1 spesifikasyonu kayıpsız bir Ethernet ortamına bağlıdır.

 


Modern veri merkezleri, büyük ölçekli ve daha fazla trafik kontrolünü desteklemek için Katman-3(L3) teknolojilerini kullanma eğilimindedir.

RoCEv1 spesifikasyonu, uçtan uca bir Katman-2(L2) Ethernet aktarımı gerektirdiğinden Katman-3(L3) ağında etkili bir şekilde çalışmadığından, 2014 yılında IBTA, InfiniBand Küresel Yönlendirme Başlığını (GRH) bir IP ve UDP başlığıyla değiştirerek RoCEv1'i genişleten RoCEv2'yi yayınladı.

Artık RoCE yönlendirilebilir olduğundan, tercih edilen veri merkezi ortamına kolayca entegre edilebilir hale gelmiş ancak, istenen RDMA performansını elde etmek için, RoCE protokolü kullanabilen özel ağ arayüz kartlarına (rNIC) ihtiyaç doğmuştur.

Bu ağ kartları, UDP yığını, tıkanıklık kontrolü ve herhangi bir yeniden iletim mekanizması dahil olmak üzere tüm RoCEv2 protokolü iş yüklerini devralır. UDP, TCP'den daha hafif olmasına rağmen, RoCEv2'yi güvenilir kılmak için gereken ek destek, ağ kartı uygulamasını giderek zorlaştırmaktadır.

RoCEv2 hala kayıpsız bir InfiniBand ortamında çalışmak üzere tasarlanmış olan InfiniBand Aktarım Protokolüne bağlıdır, dolayısıyla RoCEv2 de hala kayıpsız bir Ethernet ortamından faydalanmaktadır.


GPU Doğrudan RDMA

İki iyi fikri birleştirmek genellikle çığır açan yeni bir fikir yaratır. GPU DirectRDMA, verileri doğrudan bir GPU belleğine iletmek için PCIe'nin PeerDirect teknolojisini ve ağın RDMA teknolojisini birleştirmektedir.

Bu teknoloji, NVIDIA GPU, XEON PHI, AMD GPU, FPGA vb. gibi belleğine erişim sağlayan herhangi bir PCIe eşi tarafından desteklenebilir.

GPU iletişimleri, veri hareketi için "sabitlenmiş" arabellekler kullanır. Bir SmartNIC, ağ genelinde uzak bir "sabitlenmiş" bellekle iletişim kurmak için "sabitlenmiş" bellek de kullanabilir.

Bu iki "sabitlenmiş" bellek türü, ana bilgisayar belleğinin GPU ve SmartNIC'e ayrılmış ayrı bölümleridir.

GPU DirectRDMA'dan önce, bir GPU uzak bir sunucudaki başka bir GPU'ya veri aktardığında, kaynak GPU'nun verileri GPU belleğinden GPU tarafından sabitlenmiş CPU belleğine kopyalaması gerekiyordu. Daha sonra CPU, verileri GPU sabitlenmiş belleğinden SmartNIC tarafından sabitlenmiş belleğe kopyalardı. Daha sonra SmartNIC, verileri ağ üzerinden uzak sunucuya iletmek için RDMA'yı kullanır veya uzak sunucu tarafında, tersi işlem gerçekleşirdi.

Veriler, SmartNIC tarafından sabitlenen belleğe ulaştığında CPU, verileri GPU tarafından sabitlenen belleğe kopyalardı ve sonunda veriler uzak GPU belleğine ulaşırdı.

 

GPU ile CPU arasında veri kopyalamanın maliyeti, verileri GPU'lar arasında aktarmak için TCP kullanmanın maliyetinden çok daha düşük olsa da, yine de birkaç sorundan muzdariptir:

CPU kaynaklarının tüketimi. Veri kopyalama sırasında CPU bir darboğaz olabilir.

Artan gecikme süresi ve azaltılmış bant genişliği. Ek bellek kopyaları zaman alır ve G/Ç bant genişliğini azaltır.

Ana bellek tüketimi. Birden fazla sabitlenmiş arabellek seti, uygulama performansını etkileyen ve sistem toplam sahip olma maliyetini artıran kullanılabilir ana bilgisayar belleğini azaltır.

Veri aktarımıyla yazma-birleştirme ve örtüşen GPU hesaplaması gibi optimizasyonlar, ağın ve GPU'nun "sabitlenmiş" arabellekleri paylaşmasına olanak tanır.

Bu da, ana bilgisayar belleğindeki verilerin yedekli bir kopyasını oluşturma ihtiyacını ortadan kaldırır ve verilerin doğrudan RDMA aracılığıyla aktarılmasına olanak tanır.

Alıcı tarafında, veriler RDMA aracılığıyla geldikten sonra doğrudan GPU sabitlenmiş ana bilgisayar arabelleğine yazılır. Bu teknik, CPU ile GPU arasındaki arabellek kopyalarını ortadan kaldırır ve GPU Direct teknolojisi olarak bilinir.

Başka bir optimizasyon, CPU bant genişliğini ve gecikme darboğazlarını ortadan kaldırmak için yerel GPU belleği ile uzak GPU belleği arasında bir RDMA kanalı oluşturmaktır.

Bu, uzak düğümlerdeki GPU'lar arasında önemli ölçüde geliştirilmiş iletişim verimliliği ile sonuçlanır. Bu optimizasyonun çalışması için CPU, GPU ve SmartNIC için RDMA iletişim görevlerini koordine eder.

SmartNIC, uzak bir GPU belleğine veri göndermek ve almak için doğrudan GPU belleğine erişir.

Bu teknik de GPU DirectRDMA teknolojisi olarak bilinir.

Sonuç olarak GPU DirectRDMA teknolojisinin GPU iletişim performansını geleneksel yaklaşıma göre 10 kat iyileştirdiğini görmekteyiz.

Bu iyileştirmeler, GPU DirectRDMA teknolojisini HPC ve YZ uygulamalarının zorunlu bir bileşeni haline getirerek hem performansı hem de ölçeklenebilirliği iyileştirirken, YZ'nın sunduğu fırsatlar ve potansiyeli açısından takip edilmesi gereken noktaları da işaret etmektedir.

 

Paylaş:
E-BÜLTEN KAYIT
Güncel makalelerimizden haberdar olmak için e-bültene kayıt olun!
Sosyal Medyada Bizi Takip Edin!
E-Bülten Kayıt