Derin öğrenme çalışmalarında eğitim fazı (training phase) zaman alıcı olduğu kadar, pahalı olan kısımdır. derin öğrenme çalışmalarında en değerli parça insan elementidir. Veri bilimciler eğitimin tamamlanması için saatlerce, günlerce bekleyebilir. Bu durumda onların üretkenliği yavaşlar, yeni modellerin markete getirilmesi zaman alıcı olur.
Eğitim süresini ciddi şekilde azaltmak için, paralel olarak AI hesaplama işlemlerini icra eden derin öğrenme GPU’ları kullanılabilir. GPU’ları değerlendirirken, birden çok GPU’nun birarada birleştirilerek çalıştırılabileceğini, GPU belleği, desteklenen kütüphaneler, lisans gibi birçok faktöre bakılması faydalı olacaktır.
Derin öğrenmede GPU niçin önemlidir ?
Birçok derin öğrenme uygulamasında en uzun ve en yoğun kaynak tüketiminin olduğu faz eğitim fazıdır. Az sayıda parameter olması halinde tahammül edilebilir bir sürede tamamlanabilirken, parametre sayısı arttıkça, eğitim süresi de lineer olarak artar. Bu durumda kaynaklar daha uzun süre işgal edilir ve takım beklemek zorunda kalır.
Grafik işleme birimleri (GPU’lar) bu maliyetleri azaltabilir ve çok sayıda parametreye sahip modelleri hızlı ve verimli bir şekilde çalıştırmanıza olanak tanır. Bunun nedeni, GPU’ların eğitim görevlerinizi paralelleştirmenize, görevleri işlemci kümeleri üzerinde dağıtmanıza ve aynı anda hesaplama işlemlerini gerçekleştirmenize olanak sağlamasıdır.
GPU’lar ayrıca hedef görevleri gerçekleştirmek için optimize edilmiştir ve hesaplamaları özel olmayan donanımlardan daha hızlı tamamlar. Bu işlemciler, aynı görevleri daha hızlı işlemenizi ve CPU’larınızı diğer görevler için serbest bırakmanızı sağlar. Bu, işlem sınırlamalarının yarattığı darboğazları ortadan kaldırır.
Derin Öğrenme için en iyi GPU nasıl seçilir ?
Uygulamanız için GPU’ları seçmenin önemli bütçe ve performans sonuçları vardır. Projenizi uzun vadede destekleyebilecek, entegrasyon ve kümeleme yoluyla ölçekleme yeteneğine sahip GPU’lar seçmeniz gerekiyor. Büyük ölçekli projeler için bu, üretim sınıfı (production grade) veya veri merkezi GPU’larının seçilmesi anlamına gelir.
GPU seçiminde önemli faktörler :
Bu faktörler, seçtiğiniz GPU’ların ölçeklenebilirliğini ve kullanım kolaylığını etkiler.
1- GPU’ları birbirine bağlayabilme
Bir GPU seçerken, hangi birimlerin birbirine bağlanabileceğini düşünmeniz gerekir. GPU’ları birbirine bağlamak, uygulamanızın ölçeklenebilirliğine ve çoklu GPU ile dağıtık training stratejilerini kullanma becerisine doğrudan bağlıdır.
Tipik olarak, tüketici seviyesi GPU’ları birbirine bağlanabilmeyi desteklemez (bir sunucu içindeki GPU ara bağlantıları için NVlink ve GPU’ları sunucular arasında bağlamak için Infiniband/RoCE) ve NVIDIA, RTX 2080’in altındaki GPU’lardaki birbirine bağlanabilmeyi kaldırmıştır.
2-Desteklenen kütüphaneler, yazılımlar
NVIDIA GPU’lar, makine öğrenimi kütüphaneleri ve PyTorch veya TensorFlow gibi ortak framework’ler ile entegrasyon açısından en iyi desteklenenlerdir. NVIDIA CUDA araç takımı, GPU hızlandırmalı kitaplıklar, C ve C++ derleyicisi ve çalışma zamanı ile optimizasyon ve hata ayıklama araçlarını içerir
3- Lisans
Dikkate alınması gereken bir diğer faktör, NVIDIA’nın veri merkezlerinde belirli yongaların (chip) kullanımına ilişkin bildirimidir. 2018’deki bir lisans güncellemesinden itibaren, bir veri merkezinde tüketici GPU’ları ile CUDA yazılımının kullanımına ilişkin kısıtlamalar bulunuyor. Bu, kuruluşların üretim sınıfı (production grade) GPU’lara geçiş yapmasını gerektirebilir.
GPU Kullanımını Etkileyen 2 Algoritma Faktörü :
Kuruluşların büyük ölçekli derin öğrenme iş yüklerini optimize etmesine yardımcı olan deneyimimize göre, algoritmanızı birden çok GPU’da ölçeklendirirken göz önünde bulundurmanız gereken üç temel faktör aşağıdadır.
Verinin paralelliği – Algoritmalarınızın ne kadar veri işlemesi gerektiğini düşünün. Veri kümeleri büyük olacaksa, çoklu GPU eğitimini (NVLink) verimli bir şekilde gerçekleştirebilen GPU’lara yatırım yapın. Çok büyük ölçekli veri kümeleri için, verimli dağıtık eğitim sağlamak için sunucuların Infiniband/RoCE gibi teknolojiyi kullanarak birbirleriyle ve depolama bileşenleriyle çok hızlı iletişim kurabildiğinden emin olun.
Bellek kullanımı – Model için büyük veri girişleri ile mi çalışılacak? Örneğin, tıbbi görüntüleri veya uzun videoları işleyen modellerin çok büyük eğitim setleri vardır, bu nedenle nispeten büyük belleğe sahip GPU’lara yatırım yapmak gerekir. Buna karşılık, NLP modelleri için metin girişleri gibi tablo verileri genellikle küçüktür ve daha az GPU belleği ile yapabilirsiniz.
Derin öğrenme çalışmalarında kullanılabilecek Consumer level GPU’lar :
Tüketici seviyesi GPU’ları büyük ölçekli derin öğrenme projeleri için uygun olmasa da bu işlemciler derin öğrenme için iyi bir giriş noktası sağlayabilir. Tüketici GPU’ları, model planlama veya düşük seviyeli testler gibi daha az karmaşık görevler için ekonomik ve anlamlı olabilir. Ancak, ölçeği büyüttüğünüzde, veri merkezi sınıfı GPU’ları ve NVIDIA’nın DGX serisi gibi üst düzey derin öğrenme sistemlerini düşünmek gerekir.
NVIDIA TITAN V | NVIDIA TITAN RTX | NVIDIA GeForce RTX2080 Ti |
Titan V, araştırmacılar tarafından kullanılmak üzere tasarlanmış bir PC GPU’dur. NVIDIA’nın Volta teknolojisine dayanır ve Tensör Çekirdeklerini içerir. Titan V, Standart ve CEO Sürümlerinde gelir. Standart sürüm, 12 GB bellek, 110 teraflop performans, 4.5 MB L2 önbellek ve 3.072 bit bellek veriyolu sağlar. CEO sürümü, 32 GB bellek ve 125 teraflop performans, 6 MB önbellek ve 4.096 bit bellek veriyolu sağlar. | Titan RTX, makine öğrenimi iş yükleri için tasarlanmış NVIDIA’nın Turing GPU mimarisine dayalı bir PC GPU’dur. Hızlandırılmış yapay zekayı etkinleştirmek için Tensor Core ve RT Core teknolojilerini içerir. Her Titan RTX, 130 teraflop, 24 GB GDDR6 bellek, 6 MB önbellek ve saniyede 11 GigaRay sağlar. | GeForce RTX 2080 Ti, bir PC GPU’dur. TU102 grafik işlemcisine dayanmaktadır. Her GeForce RTX 2080 Ti, 11 GB bellek, 352 bit bellek veri yolu, 6 MB önbellek ve yaklaşık 120 teraflop performans sağlar. |
Büyük Ölçekli Projeler ve Veri Merkezleri için En İyi Derin Öğrenme GPU’ları
Aşağıdakiler, büyük ölçekli yapay zeka projelerinde kullanılması önerilen GPU’lardır.
NVIDIA Tesla A100 | A100, multi instance GPU (MIG) teknolojisini içeren Tensör Çekirdekli bir GPU’dur. Makine öğrenimi, veri analizi ve HPC için tasarlanmıştır. Tesla A100’ün binlerce birime kadar ölçeklendirilmesi amaçlanmıştır ve her boyuttaki iş yükü için yedi GPU instance’ına bölünebilir. Her Tesla A100, 624 teraflop’a kadar performans, 40 GB bellek, 1.555 GB bellek bant genişliği ve 600 GB/sn ara bağlantı sağlar. |
NVIDIA Tesla V100 | NVIDIA Tesla V100, makine öğrenimi, derin öğrenme ve yüksek performanslı bilgi işlem (HPC) için tasarlanmış Tensor Core özellikli bir GPU’dur. Derin öğrenmede tensör işlemlerini hızlandırmak için özelleşmiş, tensör çekirdek teknolojisini destekleyen NVIDIA Volta teknolojisi tarafından desteklenmektedir. Her Tesla V100, 149 teraflop performans, 32 GB’a kadar bellek ve 4.096 bit bellek veriyolu sağlar. |
NVIDIA Tesla P100 | Tesla P100, makine öğrenimi ve HPC için tasarlanmış NVIDIA Pascal mimarisine dayalı bir GPU’dur. Her P100, 21 teraflop’a kadar performans, 16 GB bellek ve 4.096 bit bellek veriyolu sağlar. |
NVIDIA Tesla K80 | Tesla K80, bilimsel hesaplama ve veri analitiğini hızlandırmak için tasarlanmış NVIDIA Kepler mimarisine dayalı bir GPU’dur. 4.992 NVIDIA CUDA çekirdeği ve GPU Boost™ teknolojisi içerir. Her K80, 8,73 teraflop’a kadar performans, 24 GB GDDR5 bellek ve 480 GB bellek bant genişliği sağlar. |
Google TPU , Diğer TPU | Google’ın tensör işleme birimleri (TPU’lar) biraz farklıdır. TPU’lar, derin öğrenme için çip veya bulut tabanlı, uygulamaya özel tümleşik devrelerdir (ASIC). Bu birimler, TensorFlow ile kullanım için özel olarak tasarlanmıştır. Diğer AI Framework’ler ile kullanım için TPU üreticileri toolkit’lere sahiptir. |
Derin Öğrenme için Nvidia DGX
DGX-1 :
Essential Instrument for AI Research | NVIDIA DGX-1
DGX-1, Ubuntu Linux Host OS tabanlı bir GPU sunucusudur. DIGITS derin öğrenme eğitim uygulamasını, NVIDIA Derin Öğrenme SDK’sını, CUDA araç setini ve NVIDIA GPU için Docker Engine Utility’yi içerir. Her DGX-1 aşağıdakileri sağlar.
- 2 x Intel Xeon CPU (Derin öğrenme framework koordinasyonu, depolama yönetimi, boot)
- 8 x Tesla V100 gpu’ya kadar, 32GB bellek,
- 300Gb/s NVLink ara bağlantı,
- 800GB/s düşük gecikmeli iletişim,
- 480GB SSD OS için, 4 x 1.92 TB SAS SSD (7.6TB) RAID 0 (striped volume) ile yapılandırılmış
DGX-2 :
DGX-2, DGX-1’den sonraki seviyedir. Daha fazla paralellik ve ölçeklenebilirlik için NVSwitch temel alır. Her DGX-2 aşağıdakileri sağlar.
- 2 petaflops performans,
- 2 x 960GB NVM SSD OS için, 30TB SSD depolama alanı,
- 16 x TESLA V100 Tensor core GPU, 32GB bellek,
- 1.6TB/s düşük gecikmeli, çift yönlü bant genişliği,
- 1.5TB Sistem belleği,
- 2 x Xeon Platinum cpu (Derin öğrenme framework koordinasyonu, depolama yönetimi, boot),
- 2 x yüksek I/O Ethernet kart
DGX A100
DGX A100 : Universal System for AI Infrastructure | NVIDIA
Derin Öğrenme için en iyi GPU hangisidir?
Ne yazık ki, kolay bir cevap yok. Projeniz için en iyi GPU, AI operasyonunuzun olgunluğuna, çalıştığınız ölçeğe ve çalıştığınız belirli algoritmalara ve modellere bağlı olacaktır. Önceki bölümlerde, ihtiyaçlarınıza en uygun GPU’yu veya GPU kümesini seçmenize yardımcı olabilecek birçok hususu sağladık.