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ş
- GPU programlama nedir?
- Neden GPU programlamasını kullanmalıyız?
- GPU programlaması için sorunlar ve trade-off'ları nelerdir?
- GPU programlama için frameworkler nelerdir?
- Uygulamanıza uygun framework seçimi
OpenCL
- OpenCL nedir?
- OpenCL'nin avantajları ve dezavantajları nelerdir?
- OpenCL için geliştirme ortamını ayarlama
- Vektör toplama işlemi yapan temel bir OpenCL programı oluşturma
- Cihaz bilgisi sorgulama, cihaz belleği tahsis etme ve tahsisi kaldırma, ana makine ile cihaz arasındaki veriyi kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronizasyonu yapmak için OpenCL API'sini kullanma
- Ana makinede çalıştırılan ve veriyi işlemeyi sağlayan çekirdeklerin yazılması için OpenCL C dilini kullanma
- Ortak görevler ve işlemleri gerçekleştirmek için OpenCL'nin dahili fonksiyonları, değişkenleri ve kütüphanelerini kullanma
- Global, yerel, sabit ve özel gibi OpenCL bellek alanlarını kullanarak veri transferlerini ve bellek erişimlerini optimize etme
- İş öğelerini, iş gruplarını ve ND aralıklarını tanımlayan paralellik kontrolü için OpenCL'nin yürütme modelini kullanma
- CodeXL gibi araçlarla OpenCL programlarını hata ayıklama ve test etme
- Birleştirme, önbelleğe alma, önceden yükleme ve profil oluşturma gibi teknikler kullanarak OpenCL programlarını optimize etme
CUDA
- CUDA nedir?
- CUDA'nın avantajları ve dezavantajları nelerdir?
- CUDA için geliştirme ortamını ayarlama
- Vektör toplama işlemi yapan temel bir CUDA programı oluşturma
- Cihaz bilgisi sorgulama, cihaz belleği tahsis etme ve tahsisi kaldırma, ana makine ile cihaz arasındaki veriyi kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronizasyonu yapmak için CUDA API'sini kullanma
- Ana makinede çalıştırılan ve veriyi işlemeyi sağlayan çekirdeklerin yazılması için CUDA C/C++ dilini kullanma
- Ortak görevler ve işlemleri gerçekleştirmek için CUDA'nın dahili fonksiyonlarını, değişkenlerini ve kütüphanelerini kullanma
- Global, paylaşılan, sabit ve yerel gibi CUDA bellek alanlarını kullanarak veri transferlerini ve bellek erişimlerini optimize etme
- İş parçacıklarını, blokları ve gridleri tanımlayan paralellik kontrolü için CUDA'nın yürütme modelini kullanma
- CUDA-GDB, CUDA-MEMCHECK ve NVIDIA Nsight gibi araçlarla CUDA programlarını hata ayıklama ve test etme
- Birleştirme, önbelleğe alma, önceden yükleme ve profil oluşturma gibi teknikler kullanarak CUDA programlarını optimize etme
ROCm
- ROCm nedir?
- ROCm'nin avantajları ve dezavantajları nelerdir?
- ROCm için geliştirme ortamını ayarlama
- Vektör toplama işlemi yapan temel bir ROCm programı oluşturma
- Cihaz bilgisi sorgulama, cihaz belleği tahsis etme ve tahsisi kaldırma, ana makine ile cihaz arasındaki veriyi kopyalama, çekirdekleri başlatma ve iş parçacıklarını senkronizasyonu yapmak için ROCm API'sini kullanma
- Ana makinede çalıştırılan ve veriyi işlemeyi sağlayan çekirdeklerin yazılması için ROCm C/C++ dilini kullanma
- Ortak görevler ve işlemleri gerçekleştirmek için ROCm'nın dahili fonksiyonlarını, değişkenlerini ve kütüphanelerini kullanma
- Global, yerel, sabit ve özel gibi ROCm bellek alanlarını kullanarak veri transferlerini ve bellek erişimlerini optimize etme
- İş parçacıklarını, blokları ve gridleri tanımlayan paralellik kontrolü için ROCm'nın yürütme modelini kullanma
- ROCm Debugger ve ROCm Profiler gibi araçlarla ROCm programlarını hata ayıklama ve test etme
- Birleştirme, önbelleğe alma, önceden yükleme ve profil oluşturma gibi teknikler 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
- GPU programlarını benchmarcler ve metrikler kullanarak değerlendirme
- GPU programlaması için en iyi uygulamaları ve ipuçlarını öğrenme
- GPU programlamasının güncel ve gelecekteki trendleri ve zorluklarını keşfetme
Özeti ve Son Adımlar
Kurs İçin Gerekli Önbilgiler
- C/C++ dili ve paralel programlama kavramları üzerine bilgi sahibi olmak
- Bilgisayar mimarisi ve bellek hiyerarşısı konusundaki temel bilgiler
- Komut satırı araçları ve kod düzenleyicilerle deneyim kazanmış olmak
Hedef Kitle
- Farklı çerçeveleri kullanmayı öğrenmek ve özelliklerini, performansını ve uyumluluğunu karşılaştırmak isteyen geliştiriciler
- Farklı platformlarda ve cihazlarda çalışabilen taşınabilir ve ölçeklenebilir kod yazmayı öğrenmek isteyen geliştiriciler
- GPU programlaması ve optimizasyonu konusundaki maliyet-benefit analizi ve zorlukları keşfetmeyi öğrenmek isteyen programcılar
28 Saat