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

Ödül Alıcılar

  • 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

Katılımcı Sayısı


Kişi Başına Fiyat

Yaklaşan Etkinlikler

İlgili Kategoriler