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 ve araçlar mevcuttur?
  • Uygulamanız için doğru çerçeveyi ve aracı nasıl seçersiniz?

OpenCL

  • OpenCL nedir?
  • OpenCL'ün avantajları ve dezavantajları nelerdir?
  • OpenCL için geliştirme ortamının kurulumu
  • Vektör toplama işlemi gerçekleştiren temel bir OpenCL programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve 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, önbellekleme, ö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 işlemi gerçekleştiren temel bir CUDA programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve 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, önbellekleme, ö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 işlemi gerçekleştiren temel bir ROCm programı oluşturma
  • Cihaz bilgilerini sorgulamak, cihaz belleği ayırmak ve serbest bırakmak, ana bilgisayar ve 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, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak ROCm programlarını optimize etme

HIP

  • HIP nedir?
  • HIP'nin avantajları ve dezavantajları nelerdir?
  • HIP için geliştirme ortamının kurulumu
  • Vektör toplama işlemi gerçekleştiren temel bir HIP programı oluşturma
  • Cihazda yürütülen ve verileri işleyen çekirdekleri yazmak için HIP dilini kullanma
  • Yaygın görevleri ve işlemleri gerçekleştirmek için HIP 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 HIP bellek alanlarını kullanma
  • Paralelliği tanımlayan iş parçacıklarını, blokları ve ızgaraları kontrol etmek için HIP yürütme modelini kullanma
  • ROCm Debugger ve ROCm Profiler gibi araçları kullanarak HIP programlarını hata ayıklama ve test etme
  • Birleştirme, önbellekleme, ön getirme ve profil oluşturma gibi teknikleri kullanarak HIP programlarını optimize etme

Karşılaştırma

  • OpenCL, CUDA, ROCm ve HIP'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

  • GPU programlamanın temellerini ve GPU uygulamaları geliştirmek için ana çerçeveleri ve araçları öğrenmek isteyen geliştiriciler
  • Farklı platformlarda ve cihazlarda çalışabilen taşınabilir ve ölçeklenebilir kod yazmak isteyen geliştiriciler
  • GPU programlamanın ve optimizasyonun faydalarını ve zorluklarını keşfetmek isteyen programcılar
 21 Saat

Katılımcı Sayısı


Kişi Başına Fiyat

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

Yaklaşan Etkinlikler

İlgili Kategoriler