Bizi tercih ettiğiniz için teşekkür ederiz. Ekip üyelerimiz en kısa sürede sizlerle iletişime geçecektir.
Rezervasyonunuzu gönderdiğiniz için teşekkür ederiz! Ekibimizden bir yetkili kısa süre içinde sizinle iletişime geçecektir.
Eğitim İçeriği
Giriş
- CUDA nedir?
- CUDA vs OpenCL vs SYCL
- CUDA özelliklerinin ve mimarisinin genel bakışı
- Geliştirme ortamının kurulumu
Başlarken
- Visual Studio Code kullanarak yeni bir CUDA projesi oluşturma
- Proje yapısını ve dosyaları keşfetme
- Programı derleme ve çalıştırma
- printf ve fprintf kullanarak çıktıyı görüntüleme
CUDA API
- CUDA API'nin ana programdaki rolünün anlaşılması
- Cihaz bilgilerini ve yeteneklerini sorgulamak için CUDA API'yi kullanma
- Cihaz belleğini ayırmak ve serbest bırakmak için CUDA API'yi kullanma
- Verileri ana bilgisayar ve cihaz arasında kopyalamak için CUDA API'yi kullanma
- Çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için CUDA API'yi kullanma
- Hataları ve istisnaları işlemek için CUDA API'yi kullanma
CUDA C/C++
- CUDA C/C++'nin cihaz programındaki rolünün anlaşılması
- CUDA C/C++ kullanarak GPU üzerinde yürütülen ve verileri işleyen çekirdekler yazma
- CUDA C/C++ veri türlerini, niteleyicilerini, operatörlerini ve ifadelerini kullanma
- Matematik, atomik, warp vb. gibi CUDA C/C++ yerleşik fonksiyonlarını kullanma
- threadIdx, blockIdx, blockDim vb. gibi CUDA C/C++ yerleşik değişkenlerini kullanma
- cuBLAS, cuFFT, cuRAND vb. gibi CUDA C/C++ kütüphanelerini kullanma
CUDA Bellek Modeli
- Ana bilgisayar ve cihaz bellek modelleri arasındaki farkın anlaşılması
- Global, paylaşılan, sabit ve yerel gibi CUDA bellek alanlarını kullanma
- İşaretçiler, diziler, dokular ve yüzeyler gibi CUDA bellek nesnelerini kullanma
- Salt okunur, salt yazılır, okuma-yazma vb. gibi CUDA bellek erişim modlarını kullanma
- CUDA bellek tutarlılık modeli ve senkronizasyon mekanizmalarını kullanma
CUDA Yürütme Modeli
- Ana bilgisayar ve cihaz yürütme modelleri arasındaki farkın anlaşılması
- Paralelliği tanımlamak için CUDA iş parçacıklarını, bloklarını ve ızgaralarını kullanma
- threadIdx, blockIdx, blockDim vb. gibi CUDA iş parçacığı fonksiyonlarını kullanma
- __syncthreads, __threadfence_block vb. gibi CUDA blok fonksiyonlarını kullanma
- gridDim, gridSync, işbirliği grupları vb. gibi CUDA ızgara fonksiyonlarını kullanma
Hata Ayıklama
- CUDA programlarındaki yaygın hataların ve hataların anlaşılması
- Değişkenleri, kesme noktalarını, çağrı yığınını vb. incelemek için Visual Studio Code hata ayıklayıcısını kullanma
- Linux üzerinde CUDA programlarını hata ayıklamak için CUDA-GDB'yi kullanma
- Bellek hatalarını ve sızıntılarını tespit etmek için CUDA-MEMCHECK'i kullanma
- Windows'ta CUDA programlarını hata ayıklamak ve analiz etmek için NVIDIA Nsight'ı kullanma
Optimizasyon
- CUDA programlarının performansını etkileyen faktörlerin anlaşılması
- Bellek verimini iyileştirmek için CUDA birleştirme tekniklerini kullanma
- Bellek gecikmesini azaltmak için CUDA önbellekleme ve ön getirme tekniklerini kullanma
- Bellek erişimlerini ve bant genişliğini optimize etmek için CUDA paylaşılan belleğini ve yerel belleğini kullanma
- Yürütme süresini ve kaynak kullanımını ölçmek ve iyileştirmek için CUDA profil oluşturmayı ve profil oluşturma araçlarını kullanma
Özet ve Sonraki Adımlar
Kurs İçin Gerekli Önbilgiler
- C/C++ dili ve paralel programlama kavramlarına ilişkin anlayış
- Bilgisayar mimarisi ve bellek hiyerarşisi konusunda temel bilgi
- Komut satırı araçları ve kod düzenleyicileri ile deneyim
Hedef Kitle
- CUDA'yı kullanarak NVIDIA GPU'leri programlamayı ve paralelliklerinden yararlanmayı öğrenmek isteyen geliştiriciler
- Farklı CUDA cihazlarında çalışabilen yüksek performanslı ve ölçeklenebilir kod yazmak isteyen geliştiriciler
- GPU programlamanın düşük seviyeli yönlerini keşfetmek ve kod performansını optimize etmek isteyen programcılar
28 Saat
Danışanlarımızın Yorumları (2)
Very interactive with various examples, with a good progression in complexity between the start and the end of the training.
Jenny - Andheo
Eğitim - GPU Programming with CUDA and Python
Trainers energy and humor.