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