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, CUDA ve SYCL Karşılaştırması
- OpenCL Özellikleri ve Mimarisinin Genel Bakışı
- Geliştirme Ortamının Kurulumu
Başlangıç
- Visual Studio Code Kullanarak Yeni Bir OpenCL Projesi Oluşturma
- Proje Yapısının ve Dosyaların İncelenmesi
- Programı Derleme ve Çalıştırma
- printf ve fprintf Kullanarak Çıktıyı Görüntüleme
OpenCL API'si
- Ana Programdaki OpenCL API'sinin Rolünün Anlaşılması
- OpenCL API'sini Kullanarak Cihaz Bilgilerini ve Yeteneklerini Sorgulama
- OpenCL API'sini Kullanarak Bağlamlar, Komut Kuyrukları, Tamponlar, Çekirdekler ve Olaylar Oluşturma
- OpenCL API'sini Kullanarak Okuma, Yazma, Kopyalama, Eşleme, Eşlemeyi Kaldırma, Yürütme ve Bekleme Gibi Komutları Sıraya Alma
- OpenCL API'sini Kullanarak Hataları ve İstisnaları Yönetme
OpenCL C
- Cihaz Programındaki OpenCL C'nin Rolünün Anlaşılması
- OpenCL C'yi Kullanarak Cihazda Yürütülen ve Verileri İşleyen Çekirdekler Yazma
- OpenCL C Veri Türlerini, Niteliklerini, İşleçlerini ve İfadelerini Kullanma
- OpenCL C Yerleşik Fonksiyonlarını, Örneğin Matematik, Geometrik, İlişkisel vb. Kullanma
- OpenCL C Uzantılarını ve Kütüphanelerini, Örneğin Atomik, Görüntü, cl_khr_fp16 vb. Kullanma
OpenCL Bellek Modeli
- Ana ve Cihaz Bellek Modelleri Arasındaki Farkın Anlaşılması
- OpenCL Bellek Alanlarını Kullanma, Örneğin Global, Yerel, Sabit ve Özel
- OpenCL Bellek Nesnelerini Kullanma, Örneğin Tamponlar, Görüntüler ve Kanallar
- OpenCL Bellek Erişim Modlarını Kullanma, Örneğin Yalnızca Okuma, Yalnızca Yazma, Okuma-Yazma vb.
- OpenCL Bellek Tutarlılık Modelini ve Senkronizasyon Mekanizmalarını Kullanma
OpenCL Yürütme Modeli
- Ana ve Cihaz Yürütme Modelleri Arasındaki Farkın Anlaşılması
- OpenCL İş Öğelerini, İş Gruplarını ve ND-Aralıklarını Kullanarak Paralelliği Tanımlama
- OpenCL İş Öğesi Fonksiyonlarını Kullanma, Örneğin get_global_id, get_local_id, get_group_id vb.
- OpenCL İş Grubu Fonksiyonlarını Kullanma, Örneğin barrier, work_group_reduce, work_group_scan vb.
- OpenCL Cihaz Fonksiyonlarını Kullanma, Örneğin get_num_groups, get_global_size, get_local_size vb.
Hata Ayıklama
- OpenCL Programlarındaki Yaygın Hataların ve Hataların Anlaşılması
- Visual Studio Code Hata Ayıklayıcısını Kullanarak Değişkenleri, Kesme Noktalarını, Çağrı Yığınını vb. İnceleme
- CodeXL'i AMD Cihazlarında OpenCL Programlarını Hata Ayıklamak ve Analiz Etmek İçin Kullanma
- Intel VTune'u Intel Cihazlarında OpenCL Programlarını Hata Ayıklamak ve Analiz Etmek İçin Kullanma
- NVIDIA Nsight'ı NVIDIA Cihazlarında OpenCL Programlarını Hata Ayıklamak ve Analiz Etmek İçin Kullanma
Optimizasyon
- OpenCL Programlarının Performansını Etkileyen Faktörlerin Anlaşılması
- OpenCL Vektör Veri Türlerini ve Vektörleştirme Tekniklerini Kullanarak Aritmetik Verimliliğini Artırma
- OpenCL Döngü Açma ve Döngü Döşeme Tekniklerini Kullanarak Kontrol Yükünü Azaltma ve Yerelliği Artırma
- OpenCL Yerel Belleği ve Yerel Bellek Fonksiyonlarını Kullanarak Bellek Erişimlerini ve Bant Genişliğini Optimize Etme
- OpenCL Profil Oluşturma ve Profil Oluşturma Araçlarını Kullanarak Yürütme Süresini ve Kaynak Kullanımını Ölçme ve İyileştirme
Ö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 hakkında temel bilgi
- Komut satırı araçları ve kod düzenleyicileri ile deneyim
Hedef Kitle
- OpenCL'yi kullanarak heterojen cihazları programlamayı ve paralelliklerinden yararlanmayı öğrenmek isteyen geliştiriciler
- Farklı platformlarda ve cihazlarda çalışabilen taşınabilir ve ölçeklenebilir kod yazmak isteyen geliştiriciler
- Heterojen programlamanın düşük seviyeli yönlerini keşfetmek ve kod performansını optimize etmek isteyen programcılar
28 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.