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 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
Danışanlarımızın Yorumları (2)
Very interactive with various examples, with a good progression in complexity between the start and the end of the training.
Jenny - Andheo
Eğitim - GPU Programming with CUDA and Python
Trainers energy and humor.