Ara

Nvidia Tekeli Sarsılıyor: ZLUDA Projesi, CUDA’yı Diğer Ekran Kartlarına Taşıyor, İşte Son Gelişmeler!

Geçtiğimiz yıl kapanma eşiğine gelen ancak kimliği bilinmeyen bir tarafça finansal olarak desteklenerek kurtarılan CUDA çeviri katmanı projesi ZLUDA, son çeyrekte kaydettiği teknik ilerlemeleri ve ekibindeki büyümeyi duyurdu.

Bu proje, Nvidia dışındaki ekran kartlarında CUDA iş yüklerini çalıştırma yeteneklerini geliştirmeye devam ediyor. Şu an için odak noktası daha çok yapay zeka iş yükleri olsa da, eski CUDA tabanlı oyunlarla uyumluluk için gerekli olan 32-bit PhysX desteği üzerinde de çalışmalar başladı.

ZLUDA projesi için belki de en önemli gelişme, geliştirme ekibinin tek kişiden iki tam zamanlı geliştiriciye ulaşmış olması. Ekibe bir aydan kısa süre önce katılan ikinci geliştirici, özellikle büyük dil modeli (LLM) iş yükleri için önemli ilerlemeler kaydetti.

32-bit PhysX Desteği

Topluluktan bir katılımcı, ZLUDA'da 32-bit PhysX desteğini etkinleştirmek için detaylı CUDA günlükleri toplayarak ilk çalışmaları başlattı. Bu günlükler, hızla çeşitli hataları ortaya çıkardı. Bu sorunlardan bazılarının 64-bit CUDA işlevselliğini de etkileyebileceği anlaşıldığından, düzeltmeleri resmi yol haritasına eklendi. Ancak, tam 32-bit PhysX desteğini tamamlamak için açık kaynak katkıcılarından daha fazla yardıma ihtiyaç duyulacak.

LLM.c Uyumluluğu

ZLUDA geliştiricileri, GPT-2 modelini CUDA kullanarak çalıştırmaya çalışan küçük bir örnek program olan llm.c adında bir test projesi üzerinde çalışıyorlar. Bu test büyük olmasa da, ZLUDA'nın hem normal CUDA fonksiyonlarını hem de cuBLAS (hızlı matematik işlemleri) gibi özel kütüphaneleri aynı anda ele almaya çalıştığı ilk durum olması nedeniyle önemli.

Bu test programı, 44 farklı API üzerinde yayılan 8.186 ayrı CUDA fonksiyon çağrısı yapıyor. Başlangıçta, ZLUDA ilk çağrıda hemen çöküyordu. Ekibe yeni katılan geliştiricinin katkıları sayesinde, artık 552. çağrıya kadar ilerleyebiliyor. Ekip, ihtiyaç duyulan 44 fonksiyonun 16'sı için desteği tamamladı, bu da tüm testi başarıyla çalıştırmaya daha da yaklaştıklarını gösteriyor. Bu test başarıyla tamamlandığında, ZLUDA'nın gelecekte PyTorch gibi daha büyük yazılımları desteklemesine yardımcı olacak.

ZLUDA Doğruluğunun İyileştirilmesi

ZLUDA'nın temel amacı, standart CUDA programlarını Nvidia dışı ekran kartlarında çalıştırırken, Nvidia donanımının davranışını mümkün olduğunca hassas bir şekilde taklit etmektir. Bu, her talimatın ya son bite kadar aynı sonuçları vermesi ya da Nvidia donanımına kıyasla katı sayısal toleranslar içinde kalması gerektiği anlamına gelir. ZLUDA'nın önceki sürümleri, büyük kod sıfırlamasından önce, belirli talimat değiştiricilerini atlayarak veya tam hassasiyeti koruyamayarak genellikle doğruluktan ödün veriyordu.

Mevcut uygulama bu durumu düzeltmede önemli ilerleme kaydetti. Doğruluğu sağlamak için PTX 'sweep' testleri — Nvidia'nın ara GPU dili kullanılarak yapılan sistematik kontroller — çalıştırılıyor. Bu testler, her talimat ve değiştirici kombinasyonunun tüm girdilerde doğru sonuçlar verdiğini doğruluyor. Bu tür kontroller daha önce kullanılmamıştı ve çeşitli derleyici kusurlarını ortaya çıkardı, bunlar daha sonra giderildi. ZLUDA ekibi, her talimatın bu titiz doğrulama sürecinden henüz geçmediğini, ancak cvt talimatı gibi en karmaşık durumların bazılarının artık bit hassasiyetinde onaylandığını belirtti.

Geliştirilmiş Günlükleme

CUDA tabanlı herhangi bir yazılımın (ister bir oyun, ister bir 3D uygulama, ister bir makine öğrenimi çerçevesi olsun) ZLUDA üzerinde çalışmasını sağlamanın temeli, programın CUDA ile nasıl iletişim kurduğunun günlüklerine sahip olmaktır. Bu, doğrudan API çağrılarını, CUDA çalışma zamanının (veya sürücülerinin) belgelenmemiş kısımlarını ve özel performans kütüphanelerinin herhangi bir kullanımını izlemeyi içerir.

Son güncellemeyle birlikte, ZLUDA'nın günlükleme sistemi önemli ölçüde geliştirildi. Yeni uygulama, daha önce görünmeyen daha geniş bir faaliyet yelpazesini yakalıyor; buna, cuBLAS'ın cuBLASLt'ye nasıl güvendiği veya cuDNN'in alt düzey Sürücü API'si ile nasıl etkileşim kurduğu gibi dahili davranışların detaylı izleri de dahil.

Çalışma Zamanı Derleyici Uyumluluğu

CUDA, ROCm/HIP, ZLUDA ve OpenCL gibi modern GPU çerçeveleri, eski GPU programlarının yeni donanım nesillerinde orijinal kodda değişiklik yapılmadan hala doğru bir şekilde derlenip yürütülebilmesini sağlamak için uygulamalar çalışırken cihaz kodunu dinamik olarak derlemeye ihtiyaç duyar.

AMD'nin ROCm/HIP ekosisteminde, bu anlık derleme, comgr kütüphanesine (ROCm-CompilerSupport'un kısaltması) bağlıdır. Bu kütüphane, kodu derleme, bağlama ve tersine mühendislik gibi görevleri yerine getirmek için kapsamlı yeteneklere sahip kompakt bir kütüphanedir ve hem Linux hem de Windows'ta mevcuttur.

ROCm/HIP sürüm 6.4 ile birlikte önemli bir uygulama ikili arayüzü (ABI) değişikliği meydana geldi: eylemleri temsil eden sayısal kodlar yeni bir v3 ABI'sında yeniden düzenlendi. Bu durum, ZLUDA'nın yanlışlıkla yanlış işlemleri çağırmasına neden oldu; örneğin, derlemek yerine bağlamaya çalışmak gibi, bu da hatalara yol açtı. Windows'ta durum daha da kötüydü, zira kütüphane sürüm 2.9 olduğunu iddia etse de dahili olarak v3 ABI'yi kullanıyordu, davranışları karıştırıyordu. Bu sorunlar da ZLUDA ekibi tarafından yakın zamanda giderildi.

Önceki Haber
Uzaydan Gelen Gizemli Misafir: Yıldızlararası Kuyrukluyıldız 3I/ATLAS İlk Kez Canlı Yayında Görüntülendi!
Sıradaki Haber
RTX 50 Serisi Steam'de Boy Gösterdi: Nvidia'nın Yeni Nesil Kartları Piyasayı Nasıl Etkileyecek?

Benzer Haberler: