Geliştirici, Qwen3.5-2B modelinin ağırlıklarına çalışan bir GPU derledi
qwenGPU adlı deneysel model, 45 derlenmiş GPU katmanını Qwen3.5-2B'nin içine yerleştirerek CUDA çekirdeklerini modelin kendi ileri geçişlerinde çalıştırıyor. Geliştiriciye göre her çalıştırma hatasız sonuç verdi.
Geliştirici Vixhal (@TheVixhal), Qwen3.5-2B modelinin ağırlıklarına dört şeritli bir SIMT GPU derleyen qwenGPU adlı deneysel çalışmayı GitHub'da MIT lisansıyla yayımladı. Model, NVIDIA PTX'e derlenmiş gerçek CUDA kodunu kendi ileri geçişlerinin içinde çalıştırıyor.
qwenGPU, Qwen3.5-2B'nin kendi 24 katmanının önüne 45 derlenmiş transformatör katmanı ekliyor ve toplam 69 katmana ulaşıyor. Bu katmanların hiçbiri eğitilmedi; her ağırlığı bir derleyici hesaplıyor. Model, Apple silicon, NVIDIA GPU ya da CPU üzerinde yaklaşık 16 GB boş bellekle çalışıyor. Nicemlenmiş (quantized) bir sürümü bulunmuyor.
qwenGPU nedir, GPU model ağırlıklarına nasıl sığıyor?
Çalışmanın arkasındaki fikir, bir GPU'yu modelin yanında değil, doğrudan modelin içinde çalıştırmak. GPU, şerit başına 15 kullanılabilir kayıt, dört aşamalı bir boru hattı, 32 blokluk ROM ve 126 bellek kelimesiyle dört şeritli bir SIMT makinesi olarak kuruluyor. Yalnızca Qwen3.5'in kendi katman tiplerini kullanıyor: Gated DeltaNet doğrusal dikkat ve SwiGLU MLP'leri.
Hile, Gated DeltaNet'in yinelenen durumunda yatıyor. Devrenin başlarında kapı açık tutuluyor ve yazma gücü 1'e sabitleniyor. Her anahtar one-hot, yani tek bir konum dışında tümü sıfır. Böylece her güncelleme tam olarak bir satırın üzerine yazıyor ve one-hot sorgu o satırı geri okuyor. Sonuçta her satır bir bellek hücresi gibi çalışıyor ve program ROM'unu, kayıtları ve genel belleği bu durum taşıyor.
GPU tamsayı aritmetiğini, koşulları, ayrışan dallanmaları ve döngüleri destekliyor. Paylaşımlı bellek, atomicAdd, __syncthreads() ve warp shuffle işlemleri de desteklenenler arasında.
CUDA çalıştırması sırasında ne oluyor?
Sunucu tarafı, NVRTC ve CUDA sürücüsünün rolünü üstleniyor. CUDA kodunu clang ile PTX'e derliyor, ardından PTX'i makine bloklarına indiriyor. Programı ve giriş dizilerini modele token olarak veriyor.
Gerisini model yazıyor. Her EXEC(b, w) token'ı, b bloğunu w warp'ı için bir ileri geçişte çalıştırıyor. Ardından gelen VAL token'ları kayıt sonuçlarını taşıyor, bellek yazmaları MEM kayıtları olarak dönüyor. Sunucu sonuçları yinelenen durumdan okuyor ve hiçbirini kendisi hesaplamıyor. Geliştiricinin demo videosunda [1, 2, 3] ve [4, 5, 6] dizilerinin iç çarpımı 32 dönüyor; model bu çalıştırmayı 47 token'da yazdı.
Modelin metin yeteneği bozuluyor mu?
Geliştiricinin ölçümüne göre bozulmuyor. Devre metin token'larında sessize alınıyor ve Qwen'in kendi ağırlıkları değiştirilmiyor. Birleşik modelin sonraki token dağılımı, orijinalinden yaklaşık 7e-4 KL sapması içinde kalıyor.
Doğruluk ve hız ne durumda?
Paylaşılan tüm sayılar geliştiricinin kendi ölçümlerine dayanıyor ve Apple silicon üzerinde MPS ile bf16'da alınmış. --check replay modunda her çalıştırma hatasız sonuç verdi. Başvuru yorumlayıcısı, NVIDIA Tesla T4 ile 49 test çekirdeğinin 49'unda eşleşti.
Normal modda model, 24 örnek sohbet sorusunun 20'sini GPU'da hesaplanmış sayılarla yanıtladı. Gelişmiş modda ise 5 sorudan 4'ünde ilk denemede doğru CUDA çekirdeğini yazdı. Normal modda Qwen hazır çekirdekler için [1, 2, 3] @ [4, 5, 6] gibi bir ifade yazıyor; gelişmiş modda CUDA çekirdeğini kendisi kaleme alıyor. README, 2B ölçeğindeki bir modelin yazdığı CUDA'nın hâlâ güvenilir olmadığı uyarısını da içeriyor.
Hız tarafında tablo daha mütevazı: Apple MPS üzerinde saniyede yaklaşık 10-15 token. Bu, çalışmayı bir üretim ortamı aracından çok araştırma demosu yapıyor.
Benzer çalışmalardan farkı ne?
qwenGPU, Divyansh Agrawal'ın Qwenputer projesindeki transformatör derleyicisini kullanıyor. Qwenputer, 32 bitlik bir RISC-V CPU'yu Qwen3.5-4B modeline derliyor. Percepta ise Mart 2026'da iki boyutlu dikkat başlıklarına sahip bir transformatöre WebAssembly yorumlayıcısı yerleştirmişti. Hız rakamları farklı donanım ve token tipleriyle ölçüldüğü için doğrudan karşılaştırılamıyor.
Neden önemli?
Deney, kesin hesaplamanın bir dil modelinin yanında değil, içinde yapılıp yapılamayacağını sınıyor. Model her CUDA çalıştırmasının adımını kendisi yazıyor; sunucu yalnızca derliyor ve yüklüyor. Yaklaşım, hesaplamayı modelin kendi yinelenen durumuna gömerek ayrı bir yürütme ortamına duyulan ihtiyacı sorguluyor. Sonuçlar geliştiricinin kendi ölçümleri olduğu için bağımsız doğrulama henüz yok.
Çalıştırmak isteyenler için hızlı başlangıç Python 3.11 veya üstü, uv, just ve yaklaşık 16 GB boş bellek istiyor. Gelişmiş mod ayrıca NVPTX arka ucuna sahip clang gerektiriyor. just build komutu Qwen3.5-2B'yi indirip GPU'yu modelin içine derliyor. Hazır bir checkpoint yayımlanmadı; oluşturulan checkpoint Qwen'in Apache-2.0 lisansına tabi.
Türkiye'deki geliştiricilerin erişimi açısından kaynakta ayrı bir bilgi yer almıyor; depo GitHub üzerinde herkese açık. Projenin ilerleyen sürümlerinde ne gibi değişiklikler geleceği ise henüz açıklanmadı.




Yorumlar 0
Henüz yorum yok. İlk yorumu siz yazın.