Ağ Üzerinden GPU Paylaşımı

Onur Cilibas
Fiba Tech Lab
Published in
5 min readMay 5, 2024

Günümüzde yapay zekâ ve makine öğrenmesinin her alanda kullanılıyor olması, artan kaynak ihtiyacı sebebiyle bilgisayar bilimlerinde de ilerleme kaydedilmesini zorunlu kılmıştır. Büyük veri setleri üzerinde karmaşık hesaplamaların yapılmasını gerekliliği, geleneksel işlemcilerin (CPU’lar) bu hesaplamalarda yetersiz kalmasına sebep olmuştur. İşte burada, grafik işlemci birimleri (GPU’lar) devreye girmiştir.

Grafik işlem birimi (GPU), matematiksel hesaplamaları yüksek hızda gerçekleştirebilen elektronik bir devredir (1). Ekran kartı olarak bilinen GPU’lar, paralel hesaplama yeteneklerine sahip özel donanımlardır ve başlangıçta oyun ve bilgisayar destekli tasarım (CAD) pazarlarına yönelik ortaya çıkmıştır. Günümüzde ise GPU kullanım alanları çeşitlenmiş ve önemi daha da artmıştır. Özellikle büyük veri setlerindeki karmaşık matematiksel işlemleri hızlı bir şekilde gerçekleştirmek için idealdirler. Derin öğrenme gibi karmaşık yapay zekâ modellerinin eğitimi sırasında, binlerce hatta milyonlarca parametrenin güncellenmesi gerekebilir. GPU’lar, bu tür hesaplama yoğun işlemleri aynı anda büyük ölçekli olarak gerçekleştirebilirler, bu da eğitim sürecini hızlandırır ve verimliliği artırır. GPU’nun etkin kullanımı ve paralel işlemeye olanak kılan yazılım CUDA olarak isimlendirilir. CUDA NVIDIA’nın sunduğu C programlama dili üzerinde eklenti olarak kullanıma sunulan bir mimari ve teknolojidir. Bu sayede GPU’lardan yüksek performans alınmıştır.

Blok zinciri, yapay zekâ çalışmaları, makine öğrenmesi uygulamalarının artışı ile kurum ve kişilerin GPU donanımına gereksinimini yüksek boyutlara çıkarmış bu da GPU’nun efektif kullanımı için çalışmaların başlamasına sebep olmuştur (3).

Depolama ortamları, CPU ve RAM gibi donanımlarda yaşanan teknik gelişmeler GPU’ların da benzer bir yapıya ulaşması konusunda çalışmaları zorunlu kılmıştır. GPU kaynak gereksiniminin inanılmaz artması sebebiyle GPU havuzu oluşturma, GPU sanallaştırmayla gibi çözümler üretildi. Aşağıda GPU kaynak ihtiyacını karşılamak için kullanılan metotlar kısaca anlatılacaktır.

1. GPU sanallaştırma: Bu yöntem, VMware, Citrix veya Hyper-V gibi sanallaştırma yazılımlarını kullanarak birden fazla sanal makinenin (VM) tek bir GPU’yu paylaşmasına olanak tanır. Her VM, GPU’ya kendisininmiş gibi erişebilir ve sanallaştırma yazılımı, GPU kaynaklarının her VM’ye tahsisini yönetir.

2. Uzaktan GPU erişimi: Bu yöntem, uzaktaki bir bilgisayarın ağ bağlantısı üzerinden başka bir bilgisayardaki GPU’ya erişmesine olanak tanır. Uzaktan GPU erişimini ayarlamak için NVIDIA GRID ve AMD MxGPU gibi yazılımlar kullanılabilir (2). Bu sayede kaynak kullanımının çok önemli olduğu GPU gereksinimi ağ üzerindeki diğer kaynaklarda bulunan GPU üzerinden sağlanmış olacaktır.

https://developer.nvidia.com/blog/streamlining-kubernetes-networking-in-scale-out-gpu-clusters-with-the-new-nvidia-network-operator-1-0/

3. GPU Cluster (Kümesi): GPU cluster, işlem gücünü ve belleği paylaşmak üzere birbirine bağlanan bir bilgisayar grubudur. Bu genellikle yüksek performanslı bilgi işlem (HPC) ve bilimsel araştırma uygulamalarında kullanılır. Görevleri kümedeki farklı GPU’lara dağıtmak için OpenMPI, Slurm veya LSF gibi bir küme yönetimi yazılımı kullanılabilir.

Bu yöntemlerin ağ bant genişliği, gecikme ve güvenlik gibi farklı gereksinimlere ve sınırlamalara sahip olabileceğini unutmamak önemlidir.

2. madde de belirtilen uzaktan GPU erişimi diğer adıyla ağ paylaşımlı GPU’lar ilgi çekici gelmektedir. Diğer 3 madde de belirtilenden farklı olarak dünyanın herhangi bir noktasında kullanıcıların efektif olarak kullanmadığı veya âtıl durumda olan kaynaklarını bir platform üzerinden paylaşarak yapay zekâ, veri madenciliği, block zinciri gibi birçok gelişime kaynak sağlaması zor olan çalışmalar için kaynak bulunmasını kolaylaştıracaktır. Güçlü bir GPU sunucu farmı kurmak pahalı zahmetli ve bakım operasyonlarını yönetmek zor olmaktadır. Bu bariz (ve büyüyen) ihtiyacı, çoğu bilgisayarda günün birçok bölümünde boşta kalan GPU’lara sahip olduğu gerçeğiyle ortaya çıkan ağ üzerinden GPU paylaşımı bu noktada çözüm üreteceği aşikardır. Ağ paylaşımlı GPU ile kullanıcıların yalnızca boş GPU’ları sisteme bağlamasına izin vermekle kalmayıp, aynı zamanda işlerin anında yönetilmesini ve planlanmasını sağlayan verimli bir merkezi olmayan sistem oluşturmak amaçlamaktadır (4).

GPU paylaşımlı ağları, aynı fiziksel cihaz üzerinde bulunan GPU’lar arasında kurulabileceği gibi, uzak yerlerdeki GPU’ları birbirine bağlamak için ağ üzerinde de kullanılabilir. Bu durumda, GPU’lar arasındaki veri iletişimi ağ üzerinden gerçekleşir ve bu da dağıtık hesaplama ve paralel işleme için büyük avantajlar sağlar. Bu ağlar veri parçacıklarını küçük paketler halinde gönderirler ve bu da iletişim maliyetini minimize eder. Ayrıca, GPU’ların hızlı bellek erişimine olanak tanıyan düşük gecikme süreleri, paylaşımlı ağların performansını artırır. Bu sayede, büyük veri setleri üzerinde paralel işlemleri gerçekleştirmek için ideal bir ortam sağlanır. GPU paylaşımlı ağlar sayesinde büyük veri setleri üzerinde paralel işlem yapmak için güçlü bir araçtır. Bu ağlar, GPU’ların yüksek paralel işlem yeteneklerini kullanarak veri paylaşımını hızlandırır ve dağıtık hesaplama için ideal bir ortam sağlarlar. Bu da yapay zekâ, derin öğrenme ve bilimsel hesaplama gibi alanlarda daha etkili ve verimli hesaplama çözümlerinin geliştirilmesine olanak tanır.

Ağ üzerinden paylaşımlı GPU kullanımı için mevcut çalışmalar ve geliştirmeler devam etmektedir.

· rCUDA: İspanya’daki Universitat Politecnica de Valencia’nın Paralel Mimari Grubunun bir geliştirme projesi, CUDA özellikli cihazların eşzamanlı uzaktan kullanımını şeffaf bir şekilde destekleyen bir uzak GPU sanallaştırma çözümü sağlıyor.

· Bitfusion: Temmuz 2019'da Dell’e ait bir bulut bilişim şirketi olan VMware, Bitfusion’ı satın alarak ağ üzerinden paylaşımlı GPU çözümü vSphere platformuna entegre edildi. GPU kaynak havuzunun çalışma prensibi, tüm CUDA servis erişimlerini CUDA sürücüsü seviyesinde kesmek, daha sonra bu servis isteklerini ve verilerini ağ üzerinden Bitfusion sunucusuna iletmek ve daha sonra bu servis isteklerini gerçek CUDA sürücüsüne aktarmaktır.

· OrionX: Nisan 2019'da Çinli bir yapay zekâ hızlandırıcı sanallaştırma ve kaynak havuzu oluşturma hizmet sağlayıcısı olan VirtAI Tech kuruldu. Geliştirdikleri Orion vGPU yazılımı, bulut veya veri merkezindeki GPU’lar için kaynak havuzu oluşturma ve sanallaştırma yetenekleri sağlayan bir sistem yazılımıdır. Etkin bir iletişim mekanizması sayesinde CUDA uygulamaları, bulut veya veri merkezindeki herhangi bir fiziksel makine, konteyner veya sanal makine üzerinde, fiziksel bir GPU monte edilmeden çalıştırılabilirken, bu uygulamalara GPU kaynak havuzunda donanım bilgi işlem gücü sağlanır (5).

Günümüzde bankacılık sektörü de derin öğrenme kavramı altında yer alan yapay zekâ çözümlerini benimseyerek sohbet motorları (Chatbot), yüz tanıma sistemleri büyük veri analitiği, risk yönetimi, otomatik alım-satım ve dolandırıcılık tespiti gibi birçok alanı dönüştürüyor (6). Bu dönüşümlerde de GPU tabanlı yazılım çözümleri devreye girmektedir. GPU’lar, büyük veri setlerindeki karmaşık hesaplamaları hızlı bir şekilde gerçekleştirerek tahminlerin yapılmasını ve trendlerin belirlenmesini sağlamaktadırlar. Derin öğrenme ve makine öğrenmesi modellerinin eğitiminde GPU’ların paralel işlem yetenekleri, finansal verilerin daha hızlı analiz edilmesine ve daha doğru kararların alınmasına olanak tanır. Bu da finans kuruluşlarının rekabet avantajı elde etmesine ve daha iyi müşteri hizmeti sunmasına yardımcı olur.

Sonuç olarak, birçok BT departmanı için, GPU altyapısını sağlamak önemli donanım veya altyapı yatırımlarını zorunlu kılan büyük, maliyetli ve zaman alıcı devreye alma işlemlerini gerektiriyordu (7). Ancak, GPU paylaşımlı ağlar sayesinde maliyet tasarrufu sağlanarak dijital dönüşümün daha hızlı ve ekonomik olarak devreye alınması mümkün hale gelir. Unutmamak gerekir ki dijital dönüşüm, yazılım, donanım ve bireylerin dönüşümünü gerektiren karmaşık bir süreçtir. Bu yazıda, yapay zekâ teknolojilerinin GPU mimarisindeki değişime nasıl tetiklediğinden bahsettik.

KAYNAKLAR

1. https://aws.amazon.com/tr/what-is/gpu/

2. https://www.quora.com/How-can-we-share-GPUs-between-computers-on-a-network

3. Saray Çetinkaya, T., & Sertbaş, A. (2022). Derin Öğrenme Algoritmalarının GPU ve CPU Donanım Mimarileri Üzerinde Uygulanması ve Performans Analizi: Deneysel Araştırma. Avrupa Bilim Ve Teknoloji Dergisi(33), 10–19. https://doi.org/10.31590/ejosat.937936

4. https://medium.com/@johnxdoe/render-establishing-a-decentralized-global-gpu-network-5094671a0f8

5. https://bruce-lee-ly.medium.com/nvidia-gpu-pooling-remote-gpu-1b6a2ca3787f

6. https://www.tskb.com.tr/blog/genel/yapay-zeka-ekseninde-bankacilik-sektoru-1-yapay-zeka-nedir

7. https://www.oracle.com/tr/erp/ai-financials/what-is-ai-in-finance/

--

--