DeepSeek V3 makale detayları: CUDA tekeli nasıl aşılır!
DeepSeek'in yakın zamanda piyasaya sürülen iki modeli DeepSeek-V3 ve DeepSeek-R1, OpenAI'nin benzer modelleriyle karşılaştırılabilir bir performansı çok daha düşük bir maliyetle elde ediyor.
Yabancı basında çıkan haberlere göre, sadece iki ay içinde, en iyi yapay zekadan 10 kat daha verimli olan 2.048 H800 GPU'dan oluşan bir kümede 671 milyar parametreye sahip bir MoE dil modelini eğittiler.
Bu atılım CUDA kullanılarak değil, çok sayıda ince taneli optimizasyon ve NVIDIA'nın assembly benzeri PTX (paralel iş parçacığı yürütme) programlamasının kullanılmasıyla elde edildi.
DeepSeek OpenAI ve donanım kısıtlamaları altında kaba kuvvet hesaplama gücüne dayanan diğer şirketlerden farklı bir yol izlemek zorunda kalmıştır. Performans kazanımları elde ederken modelin güç gereksinimlerini azaltmak için bir dizi teknolojik yenilik kullandı.
İnternet kullanıcılarından bazı coşkulu yorumlar:
"Bu dünyada, 'CUDA çok yavaş!
Genius geeks GPU performansını en üst düzeye çıkarmak için PTX'e ince ayar yapıyor
NVIDIA PTX (Parallel Thread Execution), GPU'ları için özel olarak tasarlanmış, yüksek seviyeli GPU programlama dilleri (CUDA C/C++ gibi) veya diğer dil ön uçları ile düşük seviyeli makine kodu (streaming assembly veya SASS) arasında yer alan bir orta komut seti mimarisidir.
PTX, GPU'yu bir veri paralel hesaplama cihazı olarak sunan ve CUDA C/C++ gibi dillerle mümkün olmayan kayıt tahsisi ve iş parçacığı/iş parçacığı demeti düzeyinde ayarlama gibi ince taneli optimizasyonlara olanak tanıyan düşük seviyeli bir komut seti mimarisidir.
PTX SASS'a dönüştürüldüğünde, belirli bir NVIDIA GPU nesli için optimize edilir.
DeepSeek, V3 modelini eğitirken NVIDIA H800 GPU'yu yeniden yapılandırdı:
132 akış işlemci çekirdeğinin 20'si, işlemcinin bağlantı sınırını aşmak ve işlem işleme hızını artırmak için, esas olarak veri sıkıştırma ve açma için sunucular arası iletişime tahsis edilmiştir.
Performansı en üst düzeye çıkarmak için DeepSeek ayrıca ek ince taneli iş parçacığı / iş parçacığı demeti seviyesi ayarlamaları yoluyla gelişmiş pipelining algoritmaları uyguladı.
Bu optimizasyonlar geleneksel CUDA geliştirme seviyesinin çok ötesine geçmektedir, ancak sürdürülmesi son derece zordur. Ancak bu optimizasyon seviyesi, DeepSeek ekibinin olağanüstü teknik yeteneklerini tam olarak ortaya koymaktadır.
V3 belgesinde özellikle PTX ile ilgili ayrıntılardan bahsedilmektedir
Bunun nedeni, küresel GPU kıtlığı ve ABD kısıtlamalarının ikili baskısı altında DeepSeek gibi şirketlerin yenilikçi çözümler aramak zorunda kalmasıdır.
Neyse ki bu alanda önemli atılımlar gerçekleştirdiler.
Bir geliştirici "düşük seviyeli GPU programlamanın doğru yön olduğuna inanıyor. Daha fazla optimizasyon, daha düşük maliyet ya da ek harcama yapmadan diğer ilerlemeler için kullanılabilecek performans bütçesi demektir."
Bu atılımın pazar üzerinde önemli bir etkisi oldu ve bazı yatırımcılar yeni modelin yüksek performanslı donanıma olan talebi azaltacağına ve bunun da NVIDIA gibi şirketlerin satış performansını etkileyebileceğine inanıyor.
Ancak aralarında eski Intel CEO'su Pat Gelsinger'in de bulunduğu sektör duayenleri, yapay zeka uygulamalarının mevcut tüm bilgi işlem gücünü tam olarak kullanabileceğine inanıyor.
Gelsinger, DeepSeek'in bu atılımını, kitlesel pazar için düşük maliyetli cihazlara yapay zeka yeteneklerini yerleştirmenin yeni bir yolu olarak görüyor.
PTX ve CUDA
Peki DeepSeek'in gelişi, son teknoloji LLM'nin geliştirilmesinin artık büyük ölçekli GPU kümeleri gerektirmediği anlamına mı geliyor?
Google'ın bilgi işlem kaynaklarına yaptığı büyük yatırımlar, OpenAIMeta ve xAI nihayetinde boşa mı gidecek? YZ geliştiricileri arasındaki genel fikir birliği, durumun böyle olmadığı yönündedir.
Bununla birlikte, veri işleme ve algoritma optimizasyonu açısından hala yararlanılması gereken büyük bir potansiyel olduğu ve gelecekte daha yenilikçi optimizasyon yöntemlerinin ortaya çıkacağı kesindir.
DeepSeek'in açık kaynaklı V3 modeli ile ilgili detaylar teknik raporunda ayrıntılı olarak açıklanmıştır.
Rapor, DeepSeek tarafından gerçekleştirilen derin temel optimizasyonları belgelemektedir. Kısacası, optimizasyon derecesi "tüm sistemi sıfırdan yeniden inşa ettiler" şeklinde özetlenebilir.
Yukarıda belirtildiği gibi, H800 GPU kullanarak V3'ü eğitirken DeepSeek, GPU'nun çekirdek hesaplama birimlerini (akışlı çoklu işlemci çekirdekleri veya SM'ler) belirli ihtiyaçları karşılamak üzere özelleştirmiştir.
Toplam 132 SM'den 20'sini özellikle bilgi işlem görevleri yerine sunucular arası iletişim görevlerini yerine getirmek üzere tahsis etmişlerdir.
Bu özelleştirme, NVIDIA GPU'nun düşük seviyeli komut seti olan PTX (paralel iş parçacığı yürütme) seviyesinde yapılır.
PTX, assembly diline yakın bir seviyede çalışır ve kayıt tahsisi ve iş parçacığı / iş parçacığı demeti seviyesi ayarı gibi ince taneli optimizasyonlara olanak tanır. Ancak bu ince kontrol karmaşıktır ve sürdürülmesi zordur.
Bu nedenle geliştiriciler genellikle çoğu paralel programlama görevi için yeterli performans optimizasyonları sağlayan ve düşük seviyeli optimizasyonlara olan ihtiyacı ortadan kaldıran CUDA gibi yüksek seviyeli programlama dillerini kullanmayı tercih etmektedir.
Bununla birlikte, GPU kaynaklarının verimliliğini en üst düzeye çıkarmak ve belirli optimizasyon gereksinimlerini karşılamak söz konusu olduğunda, geliştiriciler PTX'e başvurmak zorundadır.
Ancak, teknik engeller devam etmektedir
Bu konuda İnternet kullanıcısı Ian Cutress, "Deepseek'in PTX kullanması CUDA'nın teknik engellerini ortadan kaldırmıyor" dedi.
CUDA yüksek seviyeli bir dildir. NVIDIA GPU'lar ile kütüphane ve arayüz geliştirmeyi kolaylaştırır ve hızlı yinelemeli geliştirmeyi destekler.
CUDA, temel kodu (yani PTX) ince ayarlayarak performansı optimize edebilir ve temel kütüphaneler zaten tamamlanmıştır. Üretim seviyesindeki yazılımların çoğu şu anda CUDA üzerine inşa edilmiştir.
PTX, GPU için doğrudan anlaşılabilir bir assembly diline daha çok benzemektedir. Düşük seviyede çalışır ve mikro seviyede optimizasyona izin verir.
PTX'te programlamayı seçerseniz, yukarıda bahsedilen yerleşik CUDA kütüphanelerinin hiçbirinin kullanılamayacağı anlamına gelir. Bu, donanım ve çalışma zamanı konularında derinlemesine uzmanlık gerektiren çok sıkıcı bir iştir.
Bununla birlikte, geliştiriciler ne yaptıklarını tam olarak anlarlarsa, çalışma zamanında gerçekten daha iyi performans ve optimizasyon elde edebilirler.
Şu anda, NVIDIA ekosisteminin ana akımı hala CUDA kullanımıdır.
Bulutta model dağıtan ve token hizmetleri satan şirketler gibi hesaplama yüklerinden ekstra 10-20% performans veya güç verimliliği elde etmek isteyen geliştiriciler, gerçekten de CUDA seviyesinden PTX seviyesine kadar optimize ettiler. Uzun vadede buna değeceği için zaman harcamaya isteklidirler.
PTX'in genellikle belirli bir donanım modeli için optimize edildiği ve uyarlama mantığı özel olarak yazılmadığı sürece farklı donanımlar arasında taşınmasının zor olduğu unutulmamalıdır.
Buna ek olarak, hesaplama çekirdeğini manuel olarak ayarlamak büyük bir azim, cesaret ve sakin kalmak için özel bir yetenek gerektirir, çünkü program her 5.000 döngüde bir bellek erişim hatası verebilir.
Elbette, PTX'in gerçekten gerekli olduğu senaryolar ve bu konularla ilgilenecek kadar maaş alan geliştiriciler için tam anlayış ve saygı duyduğumuzu ifade ediyoruz.
Diğer tüm geliştiriciler için CUDA veya CUDA (veya MLIR) tabanlı diğer gelişmiş varyantları kullanmaya devam etmeleri önerilir.