Eğitim İçeriği

Giriş

  • GPU programlama nedir?
  • GPU programlamayı neden kullanmalısınız?
  • GPU programlamanın zorlukları ve dezavantajları nelerdir?
  • GPU programlama için hangi çerçeveler mevcuttur?
  • Uygulamanız için doğru çerçeveyi seçme

OpenCL

  • OpenCL nedir?
  • OpenCL'un avantajları ve dezavantajları nelerdir?
  • OpenCL için geliştirme ortamının kurulumu
  • Vektör toplama gerçekleştiren temel bir OpenCL programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ile cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için OpenCL API'sini kullanma
  • Cihazda yürütülen ve verileri işleyen çekirdekleri yazmak için OpenCL C dilini kullanma
  • Yaygın görevleri ve işlemleri gerçekleştirmek için OpenCL yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımlarını ve bellek erişimlerini optimize etmek için global, yerel, sabit ve özel gibi OpenCL bellek alanlarını kullanma
  • Paralelliği tanımlayan iş öğelerini, iş 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, önbelleğe alma, ön getirme ve profil oluşturma gibi teknikleri kullanarak OpenCL programlarını optimize etme

CUDA

  • CUDA nedir?
  • CUDA'nın avantajları ve dezavantajları nelerdir?
  • CUDA için geliştirme ortamının kurulumu
  • Vektör toplama gerçekleştiren temel bir CUDA programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ile cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için CUDA API'sini kullanma
  • Cihazda yürütülen ve verileri işleyen çekirdekleri yazmak için CUDA C/C++ dilini kullanma
  • Yaygın görevleri ve işlemleri gerçekleştirmek için CUDA yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımlarını ve bellek erişimlerini optimize etmek için global, paylaşılan, sabit ve yerel gibi CUDA bellek alanlarını kullanma
  • Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları 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, önbelleğe alma, ön getirme ve profil oluşturma gibi teknikleri kullanarak CUDA programlarını optimize etme

ROCm

  • ROCm nedir?
  • ROCm'nin avantajları ve dezavantajları nelerdir?
  • ROCm için geliştirme ortamının kurulumu
  • Vektör toplama gerçekleştiren temel bir ROCm programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ile cihaz arasında veri kopyalamak, çekirdekleri başlatmak ve iş parçacıklarını senkronize etmek için ROCm API'sini kullanma
  • Cihazda yürütülen ve verileri işleyen çekirdekleri yazmak için ROCm C/C++ dilini kullanma
  • Yaygın görevleri ve işlemleri gerçekleştirmek için ROCm yerleşik işlevlerini, değişkenlerini ve kitaplıklarını kullanma
  • Veri aktarımlarını ve bellek erişimlerini optimize etmek için global, yerel, sabit ve özel gibi ROCm bellek alanlarını kullanma
  • Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları 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, önbelleğe alma, ön getirme ve profil oluşturma gibi teknikleri kullanarak ROCm programlarını optimize etme

Karşılaştırma

  • OpenCL, CUDA ve ROCm'nin özelliklerini, performansını ve uyumluluğunu karşılaştırma
  • Ölçütler ve metrikler kullanarak GPU programlarını değerlendirme
  • GPU programlama için en iyi uygulamaları ve ipuçlarını öğrenme
  • GPU programlamanın mevcut ve gelecekteki eğilimlerini ve zorluklarını keşfetme

Ö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

  • Farklı GPU programlama çerçevelerini nasıl kullanacaklarını öğrenmek ve özelliklerini, performanslarını ve uyumluluklarını karşılaştırmak isteyen geliştiriciler
  • Farklı platformlarda ve cihazlarda çalışabilen taşınabilir ve ölçeklenebilir kod yazmak isteyen geliştiriciler
  • GPU programlamanın ve optimizasyonun avantajlarını ve zorluklarını keşfetmek isteyen programcılar
 28 Saat

Katılımcı Sayısı


Kişi Başına Fiyat

Danışanlarımızın Yorumları (2)

Yaklaşan Etkinlikler

İlgili Kategoriler