[Edit 3/4/24 11:30am PT: Clarified article to reflect that this clause is available on the online listing of Nvidia’s EULA, but has not been in the EULA text file included in the downloaded software. The warning text was added to 11.6 and newer versions of the installed CUDA documentation.]
Nvidia, CUDA tabanlı yazılımların diğer donanım platformlarında çeviri katmanlarını kullanarak çalıştırılmasını yasakladı. çevrimiçi olarak listelenen lisanslama koşulları 2021’den bu yana, ancak daha önce uyarı, yükleme işlemi sırasında ana sisteme yerleştirilen belgelere dahil edilmiyordu. Bu dil, CUDA 11.6 ve daha yeni sürümleri yüklerken dahil edilen EULA’ya eklenmiştir.
Kısıtlamanın, hem Intel hem de AMD’nin yakın zamanda katıldığı ZLUDA gibi girişimleri ve belki daha da önemlisi bazı Çinli GPU üreticilerinin çeviri katmanlarıyla birlikte CUDA kodunu kullanmasını engellemek için tasarlanmış olduğu görülüyor. Yorum yapmak için Nvidia’ya ping gönderdik ve bir yanıt aldığımızda sizi ek ayrıntılar ve açıklamalarla güncelleyeceğiz.
LonghornBir yazılım mühendisi şartları fark etti. Yüklü EULA metin dosyasındaki bir maddede “Bu tür çıktı yapıtlarını NVIDIA olmayan bir platformu hedeflemek amacıyla dönüştürmek amacıyla SDK öğeleri kullanılarak oluşturulan çıktının herhangi bir kısmına ters mühendislik uygulayamaz, kaynak koda dönüştüremez veya parçalara ayıramazsınız.” ifadesi yer alıyor.
Bu madde, CUDA 11.4 ve 11.5 sürümüyle ve muhtemelen bundan önceki tüm sürümlerle birlikte yüklenen EULA belgelerinde yoktu. Ancak, kurulu belgelerde 11.6 ve daha yeni sürümlerde mevcuttur.
Lider olmanın iyi tarafı da var, kötü tarafı da. Bir yandan herkes sana bağlı; Öte yandan herkes omuzlarınızda durmak istiyor. İkincisi görünüşe göre CUDA’da olan şey. CUDA ve Nvidia donanımının kombinasyonunun inanılmaz derecede verimli olduğu kanıtlandığından, tonlarca program buna güveniyor. Ancak pazara daha rekabetçi donanımlar girdikçe, daha fazla kullanıcı CUDA programlarını rakip platformlarda çalıştırma eğiliminde oluyor. Bunu yapmanın iki yolu vardır: kodu yeniden derlemek (ilgili programların geliştiricilerine açıktır) veya bir çeviri katmanı kullanmak.
Belli nedenlerden ötürü, ZLUDA gibi bir çeviri katmanını kullanmak, bir CUDA programını Nvidia olmayan donanımda çalıştırmanın en kolay yoludur. Tek yapmanız gereken, önceden derlenmiş ikili dosyaları almak ve bunları ZLUDA veya diğer çeviri katmanlarını kullanarak çalıştırmaktır. Hem AMD hem de Intel’in ZLUDA’yı daha da geliştirme fırsatını kaçırmasıyla şu anda bocalıyor gibi görünüyor, ancak bu çevirinin uygun olmadığı anlamına gelmiyor.
Çin hükümeti tarafından finanse edilen biri de dahil olmak üzere birçok Çinli GPU üreticisi, CUDA kodunu çalıştırdığını iddia ediyor. Denglin Technology, “CUDA/OpenCL gibi programlama modelleriyle uyumlu bilgi işlem mimarisine” sahip işlemciler tasarlıyor. Bir Nvidia GPU’nun tersine mühendisliğinin zor olduğu göz önüne alındığında (bir şekilde Nvidia GPU mimarileri hakkında tüm düşük seviyeli ayrıntılara sahip olmadığı sürece), burada da muhtemelen bir tür çeviri katmanıyla uğraşıyoruz.
Çin’in en büyük GPU üreticilerinden biri olan Moore Threads, CUDA kodunun GPU’larıyla çalışmasına olanak tanıyan bir MUSIFY çeviri aracına da sahiptir. Ancak, MUSIFY’nin tam bir çeviri katmanı sınıflandırmasına girip girmeyeceği henüz belli değil (MUSIFY’nin bazı yönleri kodun taşınmasını içerebilir). Bu nedenle, Nvidia’nın çeviri katmanları üzerindeki yasağının bu girişimlere doğrudan bir yanıt mı yoksa gelecekteki gelişmelere karşı önleyici bir saldırı mı olduğu tam olarak belli değil.
Açık nedenlerle, çeviri katmanlarının kullanılması Nvidia’nın hızlandırılmış bilgi işlem alanındaki hegemonyasını, özellikle de yapay zeka uygulamalarını tehdit ediyor. Bu muhtemelen Nvidia’nın CUDA uygulamalarını çeviri katmanlarını kullanan diğer donanım platformlarında çalıştırmayı yasaklama kararının ardındaki itici güçtür.
Mevcut CUDA programlarının yeniden derlenmesi tamamen yasaldır. Bunu basitleştirmek için hem AMD hem de Intel, CUDA programlarını kendi sunucularına taşıyacak araçlara sahiptir. ROCm (1) Ve OpenAPI sırasıyla platformlar.
AMD, Intel, Tenstorrent ve diğer şirketler daha iyi donanımlar geliştirdikçe, daha fazla yazılım geliştiricisi bu platformlar için tasarım yapma eğiliminde olacak ve Nvidia’nın CUDA hakimiyeti zamanla azalabilir. Ayrıca, belirli işlemciler için özel olarak geliştirilen ve derlenen programlar, kaçınılmaz olarak çeviri katmanları yoluyla çalıştırılan yazılımlardan daha iyi çalışacaktır; bu da, eğer yazılım geliştiricilerini de dahil edebilirlerse, AMD, Intel, Tenstorrent ve diğerleri için Nvidia’ya karşı daha iyi rekabetçi konumlandırma anlamına gelir. GPGPU önemli ve oldukça rekabetçi bir alan olmaya devam ediyor ve gelecekte durumun nasıl ilerleyeceğine dikkat edeceğiz.