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ş
- OpenCL nedir?
- OpenCL vs CUDA vs SYCL
- OpenCL özellikleri ve mimarisine genel bakış
- Geliştirme Ortamı Kurulumu
Başlangıç
- Visual Studio Code kullanarak yeni bir OpenCL projesi oluşturma
- Proje yapısını ve dosyalarını keşfetme
- Programı derleme ve çalıştırma
- printf ve fprintf kullanarak çıktıyı gösterme
OpenCL API
- Host programındaki OpenCL API'nin rolünü anlama
- OpenCL API'yi kullanarak cihaz bilgisi ve yeteneklerini sorgulama
- OpenCL API'yi kullanarak kontroller, komut kuyuları, buferler, çekirdekler ve olayları oluşturma
- OpenCL API'yi kullanarak okuma, yazma, kopyalama, haritalama, haritanın kaldırılması, yürütme ve bekleme komutlarını eklemek için ekleme işlemleri yapma
- OpenCL API'yi kullanarak hataları ve istisnaları yönetme
OpenCL C
- Cihaz programındaki OpenCL C'nin rolünü anlama
- Veriyi işleme ve cihazda çalışacak çekirdekler yazmak için OpenCL C kullanma
- OpenCL C veri türleri, nitelendiriciler, operatörler ve ifadelerini kullanma
- Matematiksel, geometrik, ilişkisel vb. gibi yerleşik fonksiyonları kullanma
- Atomic, image, cl_khr_fp16 vb. gibi OpenCL C genişletmelerini ve kütüphanelerini kullanma
OpenCL Bellek Modeli
- Ana bilgisayar ve cihaz bellek modellerindeki farkı anlama
- Küresel, yerel, sabit ve özel gibi OpenCL bellek alanlarını kullanma
- Büferler, görüntüler ve borular gibi OpenCL bellek nesnelerini kullanma
- Sadece okuma, sadece yazma, hem okuma hem de yazma vb. gibi OpenCL bellek erişim modlarını kullanma
- OpenCL bellek tutarlılık modelini ve senkronizasyon mekanizmalarını kullanma
OpenCL Çalışma Modeli
- Ana bilgisayar ve cihaz çalışma modellerindeki farkı anlama
- Paralellik tanımlamak için OpenCL iş öğelerini, iş gruplarını ve ND-aralıklarını kullanma
- get_global_id, get_local_id, get_group_id vb. gibi OpenCL iş öğe fonksiyonlarını kullanma
- barrier, work_group_reduce, work_group_scan vb. gibi OpenCL iş grubu fonksiyonlarını kullanma
- get_num_groups, get_global_size, get_local_size vb. gibi OpenCL cihaz fonksiyonlarını kullanma
Hata Ayıklama
- OpenCL programlarındaki yaygın hataları ve hataları anlama
- Değişkenleri, kesme noktalarını, çağrı yığınını vb. incelemek için Visual Studio Code debugger kullanma
- AMD cihazlarında OpenCL programlarını hata ayıklamak ve analiz etmek için CodeXL kullanma
- Intel cihazlarında OpenCL programlarını hata ayıklamak ve analiz etmek için Intel VTune kullanma
- NVIDIA cihazlarında OpenCL programlarını hata ayıklamak ve analiz etmek için NVIDIA Nsight kullanma
Optimizasyon
- OpenCL programlarının performansını etkileyen faktörleri anlama
- Aritmetik akış süresini artırmak için OpenCL vektör veri türlerini ve vektörel yöntemleri kullanma
- Kontrol açmazını azaltmak ve yerelleştirmek için OpenCL döngü hırpalaması ve blok çubuğu tekniklerini kullanma
- Bellek erişimlerini ve bant genişliğini optimize etmek için OpenCL yerel belleği ve yerel bellek fonksiyonlarını kullanma
- Yürütme süresini ve kaynak kullanımını ölçmek ve iyileştirmek için OpenCL performans analizi ve araçlarını kullanma
Özet ve Sonraki Adımlar
Kurs İçin Gerekli Önbilgiler
- C/C++ dili ve paralel programlama kavramları hakkındaki bilgi
- Bilgisayar mimarisi ve bellek hiyerarşisi konularında temel bilgi
- Komut satırı araçlarıyla ve kod editörleriyle deneyim
- Heterojen cihazları programlamayı ve paralelliklerini kullanmayı öğrenmek isteyen geliştiriciler
- Farklı platformlarda ve cihazlarda çalışabilen taşınabilir ve ölçeklenebilir kod yazmak isteyen geliştiriciler
- Heterojen programlamaya dair düşük seviyeli yönleri araştırmak ve kod performansını optimize etmek isteyen programcılar
28 Saat