Eğitim İçeriği

Giriş

  • GPU programlaması nedir?
  • GPU programlamasının kullanım amacı nedir?
  • GPU programlamasının zorlukları ve avantajları nelerdir?
  • GPU programlaması için hangi çerçeveler mevcuttur?
  • Uygulamanız için doğru çerçeveyi nasıl seçersiniz?

OpenCL

  • OpenCL nedir?
  • OpenCL'in avantajları ve dezavantajları nelerdir?
  • OpenCL için geliştirme ortamını nasıl kurarsınız?
  • Vector toplama işlemi yapan temel bir OpenCL programı oluşturma
  • Aygıt bilgilerini sorgulama, aygıt belleğini tahsis etme ve serbest bırakma, ana cihazlar arasında veri kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronize etmek için OpenCL API'sini kullanma
  • Aygıttaki verileri işlemek üzere çalışacak kernel'leri yazmak için OpenCL C dilini kullanma
  • Ortak görevler ve işlemler gerçekleştirmek için OpenCL dahili fonksiyonlarını, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımını ve bellek erişimini optimize etmek için genel, yerel, sabit ve özel gibi farklı bellek alanlarını kullanma
  • Paralellik tanımlayacak iş birimlerini, çalışma gruplarını ve ND-aralıklarını kontrol etmek için OpenCL yürütme modelini kullanma
  • CodeXL gibi araçları kullanarak OpenCL programlarını hata ayıklama ve test etme
  • Birleştirme, önbellekleme, ön yükleme ve profil oluşturma tekniklerini kullanarak OpenCL programlarını optimize etme

CUDA

  • CUDA nedir?
  • CUDA'nın avantajları ve dezavantajları nelerdir?
  • CUDA için geliştirme ortamını nasıl kurarsınız?
  • Vector toplama işlemi yapan temel bir CUDA programı oluşturma
  • Aygıt bilgilerini sorgulama, aygıt belleğini tahsis etme ve serbest bırakma, ana cihazlar arasında veri kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronize etmek için CUDA API'sini kullanma
  • Aygıttaki verileri işlemek üzere çalışacak kernel'leri yazmak için CUDA C/C++ dilini kullanma
  • Ortak görevler ve işlemler gerçekleştirmek için CUDA dahili fonksiyonlarını, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımını ve bellek erişimini optimize etmek için genel, paylaşılan, sabit ve yerel gibi farklı bellek alanlarını kullanma
  • Paralellik tanımlayacak iş parçacıklarını, blokları ve ızgara yapısını kontrol etmek için CUDA yürütme modelini kullanma
  • CUDA-GDB, CUDA-MEMCHECK ve NVIDIA Nsight gibi araçları kullanarak CUDA programlarını hata ayıklama ve test etme
  • Birleştirme, önbellekleme, ön yükleme ve profil oluşturma tekniklerini kullanarak CUDA programlarını optimize etme

ROCm

  • ROCm nedir?
  • ROCm'in avantajları ve dezavantajları nelerdir?
  • ROCm için geliştirme ortamını nasıl kurarsınız?
  • Vector toplama işlemi yapan temel bir ROCm programı oluşturma
  • Aygıt bilgilerini sorgulama, aygıt belleğini tahsis etme ve serbest bırakma, ana cihazlar arasında veri kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronize etmek için ROCm API'sini kullanma
  • Aygıttaki verileri işlemek üzere çalışacak kernel'leri yazmak için ROCm C/C++ dilini kullanma
  • Ortak görevler ve işlemler gerçekleştirmek için ROCm dahili fonksiyonlarını, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımını ve bellek erişimini optimize etmek için genel, yerel, sabit ve özel gibi farklı bellek alanlarını kullanma
  • Paralellik tanımlayacak iş parçacıklarını, blokları ve ızgara yapısını kontrol etmek için ROCm yürütme modelini kullanma
  • ROCm Debugger ve ROCm Profiler gibi araçları kullanarak ROCm programlarını hata ayıklama ve test etme
  • Birleştirme, önbellekleme, ön yükleme ve profil oluşturma tekniklerini kullanarak ROCm programlarını optimize etme

Karşılaştırma

  • OpenCL, CUDA ve ROCm'in özelliklerini, performansını ve uyumluluğunu karşılaştırma
  • GPU programlarını ölçmek için benchmark'ler ve metrikleri değerlendirmek
  • GPU programlama en iyi uygulamalarını ve ipuçlarını öğrenme
  • GPU programlamasının mevcut ve gelecekteki trendlerini ve zorluklarını keşfetme

Özet ve Sonraki Adımlar

Kurs İçin Gerekli Önbilgiler

  • C/C++ dilinin ve paralel programlama kavramlarının anlaşılmasi
  • Bilgisayar mimarisinin ve bellek hiyerarşisinin temel bilgisi
  • Komut satırı araçları ve kod düzenleyicileriyle deneyim

Hedef Kitle

  • Farklı GPU programlama çerçevelerini kullanmaya ve özelliklerini, performansını ve uyumluluğunu karşılaştırmayı öğrenmek isteyen geliştiriciler
  • Farklı platformlar ve cihazlarda çalışacak taşınabilir ve ölçeklenebilir kod yazmayı öğrenmek isteyen geliştiriciler
  • GPU programlamasının ve optimizasyonunun avantajlarını, dezavantajlarını ve zorluklarını keşfetmeyi öğrenmek isteyen programcılar
 28 Saat

Katılımcı Sayısı


Kişi Başına Fiyat

Yaklaşan Etkinlikler

İlgili Kategoriler