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?
- 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