BİLGİ TEKNOLOJİLERİ (İNGİLİZCE, TEZSİZ) | |||||
Yüksek Lisans | TYYÇ: 7. Düzey | QF-EHEA: 2. Düzey | EQF-LLL: 7. Düzey |
Ders Kodu | Ders Adı | Yarıyıl | Teorik | Pratik | Kredi | AKTS |
CMP5208 | GPUs ile Paralel Hesaplama | Güz | 3 | 0 | 3 | 8 |
Bu dersin açılması ilgili bölüm tarafından yarıyıl başında belirlenir |
Öğretim Dili: | Tr |
Dersin Türü: | Departmental Elective |
Dersin Seviyesi: | LİSANSÜSTÜ |
Dersin Veriliş Şekli: | |
Dersin Koordinatörü: | Dr. Öğr. Üyesi ECE GELAL SOYAK |
Dersin Amacı: | Bu dersin amacı, paralel hesaplamayı ve GPU'lar gibi yüksek paralel işlemciler için uygulama geliştirmeyi tanıtmaktır. Sürücüsüz arabalar, makine öğrenimi ve artırılmış gerçeklik gibi gerçek dünya uygulamaları paralel hesaplama kullanımının başlıca örnekleridir. Ders, hesaplamalı düşünme, çeşitli paralellik biçimleri, programlama modelleri, görevleri paralel donanıma eşleme, veri yapılarını optimize etme, verimli paralel algoritmalar tasarlamak için paradigmalar üzerinde durmakta ve pratik uygulamaların vaka çalışmalarını içermektedir. |
Bu dersi başarıyla tamamlayabilen öğrenciler; - Paralel programlama modellerini yüksek performanslı donanımlarda (ör. GPU) hesaplama görevleri için kullanabilme. - Paralel uygulamaların geliştirilmesi ve optimize edilmesi de dahil olmak üzere CUDA (NVIDIA işlemciler için) kullanarak GPU programlama konusunda uygulamalı deneyim kazanma. - Hesaplama açısından yoğun görevlerin performansını artırmak için verimli veri yapılarını ve paralel paradigmaları uygulama. - Paralel hesaplama teknolojilerini kullanarak çeşitli alanlardaki zorlukların üstesinden gelmek için paralel hesaplama uygulamalarının vaka çalışmalarını analiz etme ve değerlendirme. |
Temel konular arasında grafik işlemciler için popüler programlama arayüzleri (NVIDIA GPU'ları için CUDA gibi), grafik işlemcilerin iç mimarisi ve bunun performans üzerindeki etkisi ve bu işlemciler üzerinde paralel algoritmaların uygulanması yer alacaktır. Kurs yaklaşık 29 dersten oluşmakta ve beş uygulamalı ödev ve bir final projesi de dahil olmak üzere önemli programlama görevleri içermektedir. |
Hafta | Konu | Ön Hazırlık | |
1) | Paralel Hesaplama ve GPU Mimarisine Giriş; CUDA ve GPU programlama (NVIDIA GPU'lar) | ||
2) | GPU Hızlandırmalı Veri Yapıları (örn. paralel listeler, kuyruklar, ağaçlar) | ||
3) | CUDA'da Bellek Erişimini Optimize Etme; Önbellek optimizasyonu ve banka çakışmaları | ||
4) | Gelişmiş CUDA Özellikleri: Akışlar, asenkron işlemler, olaylar ve zamanlama, hata işleme | ||
5) | CUDA Programlama Temelleri; CUDA çekirdeğini uygulama, bellek erişim modellerini keşfetme | ||
6) | GPU'larda Paralel Algoritmalar; indirgeme, tarama, sıralama ve matris işlemleri | ||
7) | GPU Hızlandırmalı Veri Yapıları (örn. paralel listeler, kuyruklar, ağaçlar) | ||
8) | Örnek Çalışma 1: GPU'larda Makine Öğrenimi; cuBLAS, cuDNN kütüphanelerini kullanarak GPU hızlandırma | ||
9) | Örnek Çalışma 2: Görüntü işleme, nesne algılama ve hareket planlama için paralel programlama teknikleri | ||
10) | Optimizasyon için Gelişmiş CUDA Teknikleri; doluluk, warp düzeyinde programlama ve komut düzeyinde optimizasyon. | ||
11) | NVIDIA araçlarını (Nsight, Visual Profiler) kullanarak performans profili oluşturma ve darboğaz analizi | ||
12) | Proje sunumları | ||
13) | Proje sunumları |
Ders Notları: | |
Diğer Kaynaklar: | D. Kirk and W. Hwu, Programming Massively Parallel Processors: A Handson Approach, Third Edition |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Devam | % 0 | |
Laboratuar | % 0 | |
Uygulama | % 0 | |
Arazi Çalışması | % 0 | |
Derse Özgü Staj | % 0 | |
Küçük Sınavlar | % 0 | |
Ödev | % 0 | |
Sunum | % 0 | |
Projeler | % 0 | |
Seminer | % 0 | |
Ara Sınavlar | % 0 | |
Ara Juri | % 0 | |
Final | % 0 | |
Rapor Teslimi | % 0 | |
Juri | % 0 | |
Bütünleme | % 0 | |
Toplam | % 0 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 0 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 0 | |
Toplam | % 0 |
Aktiviteler | Aktivite Sayısı | Süre (Saat) | İş Yükü |
Ders Saati | 14 | 3 | 42 |
Laboratuvar | 0 | 0 | 0 |
Uygulama | 0 | 0 | 0 |
Derse Özgü Staj | 0 | 0 | 0 |
Arazi Çalışması | 0 | 0 | 0 |
Sınıf Dışı Ders Çalışması | 0 | 0 | 0 |
Sunum / Seminer | 0 | 0 | 0 |
Proje | 1 | 35 | 35 |
Ödevler | 3 | 12 | 36 |
Küçük Sınavlar | 0 | 0 | 0 |
Ara Juri | 0 | 0 | 0 |
Ara Sınavlar | 0 | 0 | 0 |
Rapor Teslimi | 0 | 0 | 0 |
Juri | 0 | 0 | 0 |
Final | 1 | 25 | 25 |
Toplam İş Yükü | 138 |
Etkisi Yok | 1 En Düşük | 2 Düşük | 3 Orta | 4 Yüksek | 5 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
1) | Temel Yazılım Mühendisliği bilgi ve yetkinliklerini kullanır. | |
2) | Yazılım Mühendisliği uygulamaları için gerekli olan program geliştirme becerisini uygular. | |
3) | Veri yapılarını kullanır ve algoritma geliştirme bilgilerini uygular. | |
4) | İşletim sistemleri üzerinde sistem programları geliştirir. | |
5) | Bilgisayar organizasyonu, tasarımı ve mimarilerini tanımlar. | |
6) | Bilgisayar ağları ve ağ güvenliği yapılarını oluşturur. | |
7) | İş zekası, veri madenciliği ve veri analizi araçlarını kullanır, tekniklerini uygular. | |
8) | Veritabanı uygulamaları ve WEB tabanlı programlar geliştirir. | |
9) | Bilgi teknolojileri projelerini tanımlar, analiz eder, tasarlar ve yönetir. | |
10) | Eğitimde teknoloji tabanlı ortamları ve araçları kullanır ve geliştirir. | |
11) | İş ortamındaki bilişim teknolojileri ihtiyaçlarını saptar, tanımlar ve çözer. | |
12) | Bilişim teknolojileri yetkinliklerini mesleki sorumluluklar ve etik kuralları çerçevesinde kullanır. |