NVIDIA’nın CUDA Derleyici (NVCC) ile son dönemde GPU uygulamalarınız için çalıştıysanız, aşağıdaki gibi bir uyarı mesajıyla karşılaşmış olabilirsiniz:
nvcc warning : Support for offline compilation for architectures prior to '<compute/sm/lto>_75' will be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
Peki, bu tam olarak ne anlama geliyor ve ne yapmalısınız? Bu yazıda, NVIDIA CUDA Toolkit ve NVIDIA Driver’ın GPU’ları nasıl desteklediğini açıklayacağız.
NVIDIA Yazılım Yığını
GPU programlama yazılım yığını, iki ana parçaya ayrılır: Uygulamaları oluşturmak için kullanılan CUDA Toolkit ve bunları çalıştırmak için gereken NVIDIA Driver.
NVIDIA Sürücüsü
NVIDIA sürücüsü, GPU donanımıyla doğrudan etkileşim kuran yazılımdır ve uygulama yazılımı ile donanım arasındaki arayüzü sağlar. Bu sürücüyü, GPU donanımının hemen üzerinde oturan bir katman olarak düşünebilirsiniz. Neyse ki NVIDIA sürücüleri genellikle CUDA Toolkit’ten bağımsız olarak yüklenir; ancak, bazı platformlarda kolaylık sağlamak adına toplu yükleyiciler ve paketler de sunulmaktadır.
NVIDIA sürücüsü, üç farklı şube ile yayınlanmaktadır. Bu şubelerin her birinin farklı yaşam döngüleri vardır:
- Yeni Özellikler Şubesi (NFB) sürücüleri en sık yayınlananlardır ve geliştiriciler için en yeni CUDA özelliklerini içerir. Yazılım ve donanımın en yeni özelliklerini denemek isteyenler için idealdir. Ancak bu sürücüler, yayımlandıktan sonra güncellenmez.
- Üretim Şubesi sürücüleri yılda yaklaşık iki kez yayılır ve kurumsal ile veri merkezi üretim kullanımı için tasarlanmış ve nitelendirilmiştir. Her ana üretim şubesi, güvenlik güncellemeleri ve performans iyileştirmeleri için periyodik olarak güncellenir ve 1 yıl boyunca desteklenir.
- Uzun Süreli Destek Şubesi (LTS) sürücüleri yaklaşık 18 ayda bir yayınlanır. Bunlar da kurumsal ve veri merkezi üretim kullanımı için tasarlanmış ve nitelendirilmiştir. Her LTS şubesi de güvenlik güncellemeleri ve performans iyileştirmeleri için periyodik olarak güncellenir ve 3 yıl boyunca desteklenir. Uzun süreli destek gereksinimi olan kullanıcılar için ideal bir çözüm sunar.
CUDA Toolkit
CUDA Toolkit, geliştiricilerin GPU programlaması için kullandığı yazılım geliştirme kitidir (SDK). Bu araç, derleyiciler, kütüphaneler, geliştirici araçları ve ikili uzantılar gibi birçok bileşen içerir. Toolkit’in her yeni sürümü, önemli bileşenleri listelemektedir. Bu paket ayrı olarak indirilebilir veya sürücü ile paketlenmiş şekilde kolaylık sağlamak amacıyla yüklenebilir. Toolkit’in, NVIDIA sürücüsünün üzerinde yer aldığını düşünebilirsiniz.
GPU Desteği
Başlangıçta belirttiğimiz uyarı mesajına geri dönecek olursak:
CUDA Toolkit’in gelecek büyük sürümü olan CUDA 13.0 ile birlikte, compute capability (CC) 7.5’den önceki mimarilerin çevrimdışı derleme desteğinin kaldırılacağı belirtiliyor.
Bu destek değişikliği, NVIDIA’nın normal destek sürecinin bir parçası. Zamanla, NVIDIA daha yeni mimariler piyasaya sürer. Belirli bir noktada, bazı eski mimariler özellik olarak tam olur ve bu destek, kaldırma aşamasına geçer.
CUDA Toolkit’in desteklediği GPU mimarilerini inceleyecek olursak, belirli bir versiyonun hangi mimarileri desteklediğini öğrenmenin hızlı ve kolay bir yolunu bulabiliyoruz. CUDA 12.9’da, nvcc --list-gpu-arch
komutunu çalıştırarak tüm desteklenen mimarileri görebiliriz.
$ nvcc --list-gpu-arch
compute_50
compute_52
compute_53
compute_60
compute_61
compute_62
compute_70
compute_72
compute_75
compute_80
compute_86
compute_87
compute_89
compute_90
compute_100
compute_101
compute_103
compute_120
compute_121
Bu listelemedeki sayıların compute capabilities ile bir ilişkisi vardır. GPU’lar ve CC’leri arasındaki ilişkiyi, güncel ve eski GPU sayfalarımıza bakarak görebilirsiniz. Yukarıdaki uyarı mesajı, CC 7.5’den önceki mimarilerin desteklenmesinin kaldırılacağının altını çiziyor. Bu, 5.x, 6.x ve 7.0 ile 7.2 mimarilerinin, yani NVIDIA Maxwell, NVIDIA Pascal ve NVIDIA Volta mimarilerinin etkileneceği anlamına geliyor.
Uyarı bildiriminin diğer önemli kısmı, “çevrimdışı derleme” desteğinin kaldırılmasıdır. Peki, bu ne anlama geliyor?
Çevrimdışı derleme, GPU kodu yazmak ve daha sonra NVCC ile bir ikili dosya oluşturmak anlamına gelir. Çevrimdışı derleme, çoğu insanın derlenmiş bir dil ile geliştirme yaparken düşündüğü şeydir. Uyarı mesajı, CUDA 13.0 ile birlikte NVCC’nin, CC 7.5’den önceki bir GPU mimarisini hedef alarak yeni uygulamalar oluşturmanızda yardımcı olmayacağını belirtiyor.
Tüm Bu Ne Anlama Geliyor?
Bu durum, CC 7.5’den önceki GPU’ların aniden çalışmayacağı veya desteklenmeyeceği anlamına gelmiyor. Ancak, CUDA Toolkit’in 13.0 ve daha yeni sürümlerinde, bu daha eski GPU’lara yönelik yeni uygulamalar oluşturmak için NVCC kullanamayacağınız anlamına geliyor. CUDA Toolkit’in eski sürümleri ile oluşturulan uygulamalar, sürücü tarafından desteklenen tüm donanımda olduğu gibi çalışmaya devam edecek.
NVIDIA’nın 580 sürücü versiyonu, CUDA 13.0 Toolkit ile birlikte çıkacaktır. Bu, CC 7.5’den önceki GPU’ları destekleyen son sürüm olacak. Önemle belirtmek gerekir ki, bu bir LTS sürücüsüdür ve yayın tarihinden itibaren üç yıl boyunca desteklenecek ve 2028 yılının ortalarına kadar sürecektir. CC 7.5’den önceki GPU’lar için oluşturulan uygulamalar, 580 sürücüsünün tam destek süresi boyunca, yani 2028 yılına kadar sorunsuz çalışacaktır.
Geliştirici Kılavuzu
Çevrimdışı derleme desteğinin kaldırılması, uygulama geliştiricileri için ne anlam ifade ediyor? CC 7.5’den önceki GPU’ları destekleyen uygulamalar yazıyorsanız, şunları yüklemeye devam etmelisiniz:
- NVIDIA Sürücüsü: 580 şubesinde kalın. Bu, 3 yıl boyunca, 2028 yılına kadar destek sağlayacaktır.
- CUDA Toolkit: 12.9’da kalın. Bu, CC 7.5’den önceki GPU mimarileri için çevrimdışı derleme desteği sunacaktır.
Özetle, yaklaşan CUDA 13.0 sürümü, CC 7.5’den önceki GPU mimarileri için çevrimdışı derleme desteğini kaldıracak. Bu GPU’lar için uygulama geliştirmeye devam etmek isteyen geliştiricilerin, NVIDIA sürücü şubesi 580 ve CUDA Toolkit 12.9’u kullanmaları gerektiği sonucuna varabiliriz.