NVIDIA JetPack sürümlerinde CUDA’nın tek bir versiyonu desteklenirdi ve kullandığınız JetPack sürümünde CUDA versiyonu yükseltilemezdi. Artık NVIDIA JetPack 5.0 sürümünde çalışan CUDA Toolkit 11.8 versiyonundan itibaren Jetson kitinizde JetPack sürümünü (hazır yapay zeka kitlerinde kullanılan BSP de dahil) güncellemeden, CUDA’yı güncelleyebileceksiniz. Böylece Jetson CUDA sürümünüz, masaüstü sürümü ile eş ilerleyecek.
Jetson CUDA ve Masaüstü CUDA Karşılaştırması
Masaüstü bilgisayarlada kullanılan ayrık GPU (dGPU) ve Jetson’da kullanılan tümleşik GPU (iGPU) sistemleri için CUDA’nın neden farklı modelleri desteklediğini anlamak için aşağıdaki soruların cevaplarını vermek gerekiyor:
– Jetson’da CUDA nasıl paketlenir?
– Masaüstünde CUDA nasıl paketlenir?
– Aralarındaki fark nedir?
Figür 1, Jetson Linux BSP ve birçok farklı yazılım katmanından oluşan Jetson yazılım mimarisini göstermektedir. Bu mimari, NVIDIA JetPack SDK’yı oluşturmaktadır, daha detaylı bilgiye buradan ulaşabilirsiniz.
Figür 1. Jetson yazılım mimarisi
Figür 2, CUDA’nın NVIDIA JetPack SDK paket yapısında nerede olduğunu ve Jetson Linux BSP’nin diğer bileşenleri ile nasıl etkileşime girdiğini gösteriyor. Aşağıdaki görselde de gördüğünüz gibi CUDA sürücüsü, Jetson Linux BSP’nin bileşenlerinden bir tanesi. Bütün bileşenlerin yeni sürümleri, CUDA’nın üç ayda bir yeni sürüm yayınlama takviminden farklı olarak Jetson Linux BSP’nin güncellenme takvimine göre yayınlanır.
NVIDIA JetPack SDK’yı yüklediğinizde Jetson Linux BSP (CUDA sürücüsünü de içerir) ve CUDA toolkit, varsayılan olarak yüklenirler.
Figür 2, Jetson’da (iGPU) CUDA Paketleme; CUDA sürücüsü Jetson Linux BSP içindedir.
Figür 3, Masaüstünde (dGPU) CUDA Paketleme; CUDA sürücüsü NV Display sürücüsü ve UDA paketlerinin bir parçasıdır.
CUDA geliştiricileri, masaüstü versiyonunun bu paketleme yapısı sayesinde CUDA’nın üç aylık yeni sürüm takvimiyle uyumlu bir şekilde CUDA’nın en güncel sürümünü kullanma esnekliğine sahipler. İleri sürüm uyumluluğu ve ara sürüm uyumluluğu (minor version compatibility) gibi birçok özellik, uygulamanızın gerekliliklerine göre sürücü ve toolkit kombinasyonu seçmenize yardımcı oluyor.
Jetson Yükseltilebilir CUDA Paketi
CUDA 11.8 sürümünden başlamak üzere CUDA, Jetson geliştiricilerinin de aynı masaüstü versiyonunda olduğu gibi CUDA sürücülerinin ve CUDA toolkit’in en güncel halinde çalışmalarını sağlayacak bir yükseltme yolu sundu.
Figür 4’teki mavi kutular, NVIDIA JetPack 5.0 SDK’da varsayılan olarak bulunan bileşenleri, yeşil kutular ise yeni özellik sayesinde yükseltilebilecek CUDA bileşenlerini göstermektedir. Noktalı çizgi, Jetson Linux BSP’sini NVIDIA JetPack SDK’yı ayırmaktadır.
Figür 4, Jetson Üzerinde CUDA Yükseltme Yolu
Bu yükseltmeler, figür 5’te gösterildiği gibi CUDA sürücü yükseltmesinin (CUDA uyumluluk paketi) sunulmasıyla mümkün olur. Bu paket olmadan önce Jetson üzerinde çalışan CUDA sürücüsünü ve toolkit’i yükseltmek için hiçbir mekanizma bulunmuyordu.
Bu yükseltme paketi temel olarak CUDA sürücüsü (libcuda.so.*) ve yeni CUDA sürümleriyle birlikte gelen, CUDA fonksiyonlarını kullanmamızı sağlayan bağımlılıklarını (dependencies) içerir. Bu paket ile Jetson üzerinde çalışan CUDA sürümünü en güncel versiyona yükseltebilirsiniz. Bu yükseltme Jetson Linux BSP üzerinden yapılır ve değişmeden kalır.
Figür 5, Yeni CUDA Yükseltme Paketi
Jetson Üzerinde CUDA Nasıl Yükseltilir?
Figür 6’da gösterildiği gibi CUDA 11.8’den itibaren CUDA İndirme sayfası aarch64-Jetson indirme butonunu aktif . Bu sayfadan local installer veya CUDA network repositories seçeneklerinden bir tanesini seçerek güncel CUDA sürümünü indirebilirsiniz.
Figür 6, CUDA 11.8 İndirme Sayfasında Bulunan aarch64-Jetson Yükleme Seçenekleri
Yeni aarch64-Jetson CUDA yükleyicisi, CUDA Toolkit ve yükseltme paketini içeriyor. Kurulum yönergelerini takip ederek Jetson kitinize, CUDA yükseltme paketini ve CUDA Toolkit’i indirip kurabilirsiniz.
Figür 7, Jetson Kitleri İçin Aarch64-Jetson CUDA Yükleyici
Yüklenen yükseltme paketi, toolkit dosya dizininde bulunmaktadır. Örneğin CUDA 11.8 sürümünde aşadaki dizinde bulunmaktadır:
Yükseltme paketi, aşağıdaki dosyaları içermektedir:
– libcuda.so.*: CUDA sürücüsü
– libnvidia-nvvm.so.*: Just-in-time link-time optimizasyonu (CUDA 11.8 ve sonraki sürümlerde bulunmaktadır)
– libnvidia-ptxjitcompiler.so.*: PTX dosyaları için JIT (just-in-time) derleyici
Bu dosyalar CUDA sürücü arabirimini uygular. Bu paket yalnızca dosyaları sağlamakla görevlidir, sistemi yapılandırmaz.
x86 mimarili bir host üzerinde çalışıyorsanız ve aarch64-Jetson mimarisine çapraz derleme(cross-compiling) yapacaksanız, U20.04 CUDA host yükleyici, CUDA İndirme sayfasında bulunmaktadır. Çapraz derleyici, aşağıdaki klasörde bulunmaktadır.
Örnek
Aşağıdaki kod örneği, CUDA yükseltme paketinin yüklenmesini ve uygulama çalıştırmasını göstermektedir.
Varsayılan sürücüler (NVIDIA JetPack ve Jetson Linux BSP ile yüklenenler) yükleyici tarafından kit üzerinde tutulur. Uygulama CUDA’nın JetPack ile yüklenen varsayılan sürümünü veya yükseltme paketi ile yüklenen sürümü kullanabilir. LD_LIBRARY_PATH değişkeni ile kullanmak istediğiniz sürümü seçebilirsiniz.
Uygun JetPack versiyonlu bir sisteme sadece bir tane CUDA yükseltme paketi yüklenebilir. CUDA yükseltme paketi yüklenirken, eski sürüm yükseltme paketi silinir ve yeni sürüm ile değiştirilir. Yükseltme paketi, JetPack versiyonu ile uyumlu değilse, yükseltme işlemi başarız olur.
CUDA 11.4 kullanarak derlediğiniz uygulamalarınızı, CUDA’nın geriye dönük uyumluluk özelliği sayesinde CUDA 11.8 yükseltme paketiyle çalışmaya devam eder.
Tablo 1, NVIDIA JetPack 5.0 sürümünde CUDA user-mode driver (UMD) ve CUDA Toolkit versiyon uyumluluğunu göstermektedir.
CUDA UMD |
CUDA Toolkit |
|
---|---|---|
11.4 | 11.8 | |
11.4 | U | U |
11.8 | U | U |
U: uyumlu | X: uyumsuz |
Dikkat Edilmesi Gereken Noktalar
– Yükseltme paketi, CUDA 11.8’den ve NVIDIA JetPack 5.0’dan itibaren geçerlidir.
– CUDA yükseltme paketi, sadece CUDA sürücü arayüzünü günceller, geri kalan JetPack SDK bileşenleri değişmeden kalır. CUDA sürücüsündeki yeni bir özellik, güncellenmiş NVIDIA JetPack SDK’nın bir bileşenine veya arayüze ihtiyaç duyarsa, çağırıldığı zaman bir hata verebilir. Böyle durumların yaşanmaması için özellik uyumu hakkında CUDA sürüm notlarını inceleyebilirsiniz.
– Uyumlu sürümler hakkında daha fazla bilgiyi Tegra Uygulaması için CUDA sayfasında bulabilirsiniz.
– Jetson’da CUDA, cuDNN, TensorRT ve benzeri yazılımlar, Jetson Linux’un (L4T) belirli bir sürümüne
– Jetson’da CUDA, cuDNN, TensorRT ve benzerlerinin bilgi işlem yığını, Jetson Linux’un (L4T) belirli bir sürümüyle uyumludur. Yazılım yığınını yeni sürüme yükseltmek için Jetson Linux’u da yükseltmek zorundasınız.
NVIDIA, Jetson Linux’u güncellemeden yazılım yığınını güncelleme konusunda çalışmaya devam etmektedir. CUDA yükseltme paketi, bu çalışmasındaki attığı ilk adımlardan bir tanesidir.
Yazının kaynağına buradan ulaşabilirsiniz.
OPENZEKA HABERLERİ
Hesaplarınızda paylaşmak ister misiniz?