- Nvidia'nın 10 yılda GPU performansını 1000 kat artırmasını sağlayan 4 unsur
- Chief Scientist Bill Dally, bunu IEEE Hot Chips 2023 açılış konuşmasında tek bir slaytla açıkladı
Number Representation: 16 kat
- "Genel olarak elde ettiğimiz en büyük fayda, sayı gösteriminin iyileştirilmesi oldu"
- Buradaki sayılar, sinir ağlarının temel parametrelerini ifade ediyor
- Bu parametrelerden biri ağırlıklar (Weights), bir diğeri ise aktivasyonlar (Activations)
- Ağırlıklar: modeldeki nöronlar arasındaki bağlantı gücü
- Aktivasyonlar: nöronda, ağırlıkların uygulandığı girdilerin toplamını işleyerek etkinleşip etkinleşmeyeceğini belirlemesi ve bilgiyi sonraki katmana aktarması
- P100 öncesindeki Nvidia GPU'ları bu tür ağırlıkları tek duyarlıklı kayan nokta (single precision floating-point) sayılarla ifade ediyordu
- IEEE 754 standardıyla tanımlanan bu sayıların uzunluğu 32 bittir; 23 bit kesir kısmını, 8 bit bu kesre uygulanan üs kısmını, 1 bit ise sayının işaretini temsil eder
- Ancak makine öğrenimi araştırmacıları, birçok hesaplamada daha düşük hassasiyetli sayıların kullanılabileceğini ve buna rağmen sinir ağlarının hâlâ doğru yanıtlar verebildiğini fark etti
- Böylece daha az sayıda biti işlemek, makine öğreniminin temel hesaplamalarını (çarpma ve biriktirme) yapan mantığı daha küçük ve verimli hâle getirebiliyor
- Çarpma için gereken enerji, bit sayısının karesiyle orantılıdır
- Bu yüzden Nvidia, P100 ile bu sayıyı yarıya indirerek FP16 kullandı. Google da bfloat16 adlı kendi sürümünü sundu
- İkisi arasındaki fark, hassasiyet sağlayan kesir bitleri ile aralık sağlayan üs bitlerinin göreli sayısından kaynaklanıyor
- bfloat16, FP32 ile aynı sayıda üs bitine sahip olduğu için iki biçim arasında geçiş yapmak kolaydır
- Günümüzün en yeni GPU'su H100, ChatGPT ve diğer LLM'ler gibi büyük transformer sinir ağlarının belirli bölümlerini yürütmek için 8 bitlik sayılar kullanabiliyor
- Ancak Nvidia bunun her durumda geçerli olan tek tip bir çözüm olmadığını gördü
- Örneğin Nvidia'nın Hopper GPU mimarisi, hesaplama yapmak için aslında iki farklı FP8 formatı kullanıyor
- Bunlardan biri biraz daha yüksek hassasiyet, diğeri ise biraz daha geniş aralık sağlıyor
- Nvidia'nın özel sırrı, hangi durumda hangi formatın kullanılacağını bilmesi
- Dally ve ekibinin, daha az bitle daha fazla yapay zeka performansı çıkarmak için pek çok ilginç fikri var
- Ayrıca kayan nokta sisteminin ideal olmadığı da açık
- Temel sorunlardan biri, sayı büyük ya da küçük olsun kayan nokta hassasiyetinin oldukça tutarlı kalması
- Oysa sinir ağı parametreleri büyük sayılar kullanmıyor; 0 çevresinde kümeleniyor
- Bu nedenle Nvidia'nın Ar-Ge odağı, sayıları 0'a yakın bölgede daha hassas temsil edebilecek verimli yöntemler bulmak
Complex Instructions: 12.5 kat
- "Komutları getirme ve çözümleme maliyeti, basit aritmetik işlemler yapmanın maliyetinden kat kat yüksek"
- Örneğin çarpma işlemlerinden biri, işlemin kendisi için gereken 1.5 picojoules'in 20 katına ulaşan bir ek yük tüketiyor
- Nvidia, GPU'ları bir komut dizisi yerine tek bir komutla büyük hesaplamalar yapacak şekilde tasarlayarak önemli kazanç elde etti
- Hâlâ bir ek yük var, ancak karmaşık komutlar kullanıldığında bu maliyet daha fazla matematik işlemi üzerine yayılabiliyor
- Örneğin karmaşık bir komut olan IMMA (integer matrix multiply and accumulate, tamsayı matris çarpma ve biriktirme) için ek yük, matematik enerjisi maliyetinin yalnızca %16'sı
Moore’s Law: 2.5 kat
- Moore Yasası'nın ilerleyişini sürdürmek milyarlarca dolarlık yatırım, son derece karmaşık mühendislik ve çok sayıda uluslararası belirsizlik gerektiriyor
- Ancak bu da Nvidia GPU performansındaki artışın bir parçası
- Nvidia sürekli olarak en ileri üretim teknolojilerinden yararlandı
- H100, TSMC'nin N5 (5 nanometre) süreciyle üretiliyor ve çip üreticisi ancak 2022'nin sonlarında yeni nesil N3 için ilk üretime başladı
Sparsity: 2 kat
- Eğitimden sonra sinir ağında, aslında en başta var olmaması gereken pek çok nöron kalıyor
- Bazı sinir ağlarında "nöronların yarısından fazlasını kaldırıp yine de doğruluğu korumak mümkün olabilir"
- Bu nöronların ağırlık değerleri 0 ya da 0'a çok yakın olduğu için çıktıya katkı yapmaz; bunları hesaplamaya katmak yalnızca zaman ve enerji israfıdır
- Hesaplama yükünü azaltmak için bu ağları "seyrek (Sparse)" hâle getirmek zor bir iştir
- Ancak Nvidia, H100'ün selefi A100 ile structured sparsity adını verdiği bir özelliği tanıttı
- Bu donanım, mümkün olan dört budama olayından ikisini zorunlu kılarak yeni ve daha küçük matris hesaplamalarına yol açabiliyor
- "Seyreklik sorunu henüz çözülmedi" "Aktivasyonlar tarafında yapmamız gereken şeyler var ve ağırlıklarda da daha yüksek seyreklik elde edebiliriz"
6 yorum
Vay, güzel yazı için teşekkürler!
Keyifle okudum.
Vay be, hisseyi almaya devam etmek lazım..
2018'de erkenden biraz Nvidia hissesi almıştım, şu an %1100 olmuş. O zaman çok daha fazla alsaymışım. T_T
Vay canına..!
16 x 12.5 x 2.5 x 2 yapınca tam 1000 ediyor.