B
blog
Misafir
Misafir
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
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
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.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
ve
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
(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
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
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:
Copy to Clipboard
/usr/local/cuda-11.8/
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,
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
bulunmaktadır. Çapraz derleyici, aşağıdaki klasörde bulunmaktadır.Copy to Clipboard
aarch64-jetson/cross/Ubuntu/20.04/deb installer
Örnek
Aşağıdaki kod örneği, CUDA yükseltme paketinin yüklenmesini ve uygulama çalıştırmasını göstermektedir.
Copy to Clipboard
$ sudo apt-get -y install cuda Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: cuda-11-8 cuda-cccl-11-8 cuda-command-line-tools-11-8 cuda-compat-11-8 ...… The following NEW packages will be installed: cuda cuda-11-8 cuda-cccl-11-8 cuda-command-line-tools-11-8 cuda-compat-11-8 ...… 0 upgraded, 48 newly installed, 0 to remove and 38 not upgraded. Need to get 15.7 MB/1,294 MB of archives. After this operation, 4,375 MB of additional disk space will be used. Get:1
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
cuda-compat-11-8 11.8.31058490-1 [15.8 MB] Fetched 15.7 MB in 12s (1,338 kB/s) Selecting previously unselected package cuda-compat-11-8. (Reading database ... ...… (Reading database ... 100% (Reading database ... 148682 files and directories currently installed.) Preparing to unpack .../00-cuda-compat-11-8_11.8.31058490-1_arm64.deb ... Unpacking cuda-compat-11-8 (11.8.31058490-1) ... ...… Unpacking cuda-11-8 (11.8.0-1) ... Selecting previously unselected package cuda. Preparing to unpack .../47-cuda_11.8.0-1_arm64.deb ... Unpacking cuda (11.8.0-1) ... Setting up cuda-toolkit-config-common (11.8.56-1) ... Setting up cuda-compat-11-8 (11.8.31058490-1) ... $ ls -l /usr/local/cuda-11.8/compat total 55300 lrwxrwxrwx 1 root root 12 Jan 6 19:14 libcuda.so -> libcuda.so.1 lrwxrwxrwx 1 root root 14 Jan 6 19:14 libcuda.so.1 -> libcuda.so.1.1 -rw-r--r-- 1 root root 21702832 Jan 6 19:14 libcuda.so.1.1 lrwxrwxrwx 1 root root 19 Jan 6 19:14 libnvidia-nvvm.so -> libnvidia-nvvm.so.4 lrwxrwxrwx 1 root root 23 Jan 6 19:14 libnvidia-nvvm.so.4 -> libnvidia-nvvm.so.4.0.0 -rw-r--r-- 1 root root 24255256 Jan 6 19:14 libnvidia-nvvm.so.4.0.0 -rw-r--r-- 1 root root 10665608 Jan 6 19:14 libnvidia-ptxjitcompiler.so lrwxrwxrwx 1 root root 27 Jan 6 19:14 libnvidia-ptxjitcompiler.so.1 -> libnvidia-ptxjitcompiler.so The user can set LD_LIBRARY_PATH to include the libraries installed by upgrade package before running the CUDA 11.8 application: $ LD_LIBRARY_PATH=/usr/local/cuda-11.8/compat:$LD_LIBRARY_PATH ~/Samples/1_Utilities/deviceQuery CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "Orin" CUDA Driver Version / Runtime Version 11.8 / 11.8 CUDA Capability Major/Minor version number: 8.7 ...... deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 11.8, CUDA Runtime Version = 11.8, NumDevs = 1 Result = PASSVarsayı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 |
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
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
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
inceleyebilirsiniz.– Uyumlu sürümler hakkında daha fazla bilgiyi
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
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
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
ulaşabilirsiniz.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.