- SCALE, CUDA uygulamalarını AMD GPU'lar için yerel olarak derlemeyi mümkün kılan bir GPGPU programlama araç takımıdır
- CUDA programlarını veya build sistemini değiştirmek gerekmez; ayrıca daha fazla GPU üreticisi ve CUDA API desteği geliştirilmektedir
Nasıl çalışıyor?
- SCALE, diğer çapraz platform GPGPU çözümleriyle karşılaştırıldığında birkaç önemli yenilik sunar
- CUDA programlarını olduğu gibi kabul eder. Başka bir dile port etmeye gerek yoktur. Bu, program inline PTX
asm kullansa bile geçerlidir
- SCALE derleyicisi,
nvcc ile aynı komut satırı seçeneklerini ve CUDA lehçesini kabul ederek drop-in replacement olarak çalışır
- NVIDIA CUDA Toolkit kurulumunu "taklit ederek" mevcut build araçları ve script'lerin aynen çalışmasını sağlar
Hangi projeler test edildi?
- SCALE, açık kaynak CUDA projeleri derlenip testler çalıştırılarak doğrulandı
- Şu anda aşağıdaki açık kaynak projeler gece otomatik testlerine dahildir ve tamamı başarıyla geçmektedir
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
Hangi GPU'lar destekleniyor?
- Aşağıdaki GPU hedefleri desteklenmektedir ve Nightly testlerine dahildir
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- Aşağıdaki GPU hedefleri ara sıra manuel testlerden geçmiştir ve "çalışıyor gibi görünmektedir"
- Aşağıdaki GPU desteği üzerinde çalışılmaktadır
- AMD
gfx900 (Vega 10, GCN 5.0)
- Belirli bir AMD GPU mimarisi desteğini hızlıca istiyorsanız iletişime geçin
SCALE'in bileşenleri
- AMD GPU'lar için
nvcc lehçesi CUDA'yı, PTX asm dahil, derleyebilen nvcc uyumlu bir derleyici
- AMD GPU'lar için CUDA runtime ve driver API implementasyonu
- ROCm kütüphanelerine devrederek "CUDA-X" API sağlayan açık kaynak wrapper kütüphaneleri.
cuBLAS ve cuSOLVER gibi kütüphaneler bu şekilde ele alınır
SCALE ile diğer çözümler arasındaki farklar
- SCALE, yeni bir GPGPU yazılımı yazma yöntemi sunmak yerine, yaygın olarak kullanılan CUDA diliyle yazılmış programların doğrudan AMD GPU'lar için derlenmesini sağlar
- SCALE, NVIDIA CUDA ile tam uyumluluğu hedefler. Kullanıcıların birden fazla kod tabanını sürdürmeden veya performanstan ödün vermeden birden fazla GPU üreticisini destekleyebilmesi gerektiğini savunur
- SCALE'in dili, NVIDIA CUDA'nın bir süper kümesi olup
nvcc'den uzaklaşmak isteyen kullanıcılar için GPU kodu yazmayı daha kolay ve verimli hale getiren isteğe bağlı dil genişletmeleri sunar
- SCALE hâlâ geliştirilmekte olan bir çalışmadır. Kullanımınızı engelleyen eksik bir API varsa iletişime geçin; geliştirme öncelikleri buna göre ayarlanacaktır
GN⁺ Özeti
- SCALE, CUDA uygulamalarını AMD GPU'lar için yerel olarak derlemeyi mümkün kılan önemli bir araç takımıdır
- Mevcut CUDA programlarını değiştirmeden AMD GPU'larda çalıştırabilmesi, geliştiriciler için büyük bir avantaj sağlar
- NVIDIA CUDA ile tam uyumluluğu hedeflemesi, birden fazla GPU üreticisini destekleme açısından avantaj sağlar
- Devam eden bir proje olduğu için, ihtiyaç duyulan API'ler eksikse geliştirme ekibiyle iletişime geçilip öncelikler ayarlanabilir
- Benzer işlevlere sahip projeler arasında ROCm ve HIP bulunur
1 yorum
Hacker News yorumları
Birçok kişi AMD'nin bir çeviri katmanını desteklemesi gerektiğini düşünüyor, ancak bunun kötü bir fikir olduğu yönünde bir görüş var
Hata uyumluluğunu hedeflemenin aptalca olduğu yönünde bir görüş var
Donanıma büyük ölçüde bağımlı kodun AMD'de "öylece çalışabilmesini" anlamadığını söyleyen bir görüş var
wgmmakomutlarını, optimal tensor core bellek ve register yerleşimini, tensor memory accelerator komutlarını vb. dikkate alırDoğruysa etkileyici, ancak açık kaynak olmadığı ve nasıl çalıştığına dair net ayrıntılar bulunmadığı yönünde bir görüş var
Nvidia'nın yüksek değerlemesinin başlıca nedeni, AMD'nin GPU'ları ML için kullanışlı hale getirmeye yatırım yapmaması olduğu yönünde bir görüş var
AMD bunu o kadar kötü yaptı ki bu tür projeleri kutlamak istediğini söyleyen bir görüş var
Birkaç yıl önce Spectral Compute'ta çalıştığını söyleyen biri var
Biraz CUDA yazdığını söyleyen biri var
Bu projenin harika olduğu yönünde bir görüş var
Mevcut kısıtlamalara dair bir sayfa olmasının iyi olduğu, ancak çoğu kişinin "CUDA" diye tanımladığı şeyin gerçek CUDA işlevlerinin yalnızca küçük bir bölümü olduğu yönünde bir görüş var
Teknik olarak mümkün olduğu için gerçek olabilir diyen bir görüş var