Plan Szkolenia
Moduł 1: Wprowadzenie do Świata Obliczeń Heterogenicznych i OpenCL
- 1.1. Ewolucja Architektury Komputerów i Obliczeń Równoległych
- 1.2. GPU Compute / GPGPU - Historia i Obecny Stan Technologii
- 1.3. Porównanie Technologii: OpenCL vs CUDA vs SYCL vs Vulkan Compute
- 1.4. OpenCL jako Standard Otwarty - Historia Standardu i Ewolucja do OpenCL 3.0
- 1.5. Kluczowe Nowości w OpenCL 3.0 - Architektura Rdzenia i Funkcjonalności Opcjonalne
- 1.6. Model Platformy OpenCL
- 1.7. Model Wykonania OpenCL
- 1.8. Model Pamięci OpenCL
Moduł 2: Konfiguracja Środowiska Programistycznego
- 2.1. Wymagania Systemowe i Sprzętowe
- 2.2. Instalacja Środowiska w Systemie Linux
- 2.3. Instalacja w Innych Systemach (Windows, macOS)
- 2.4. Kompilacja i Budowanie Programów OpenCL
- 2.5. Narzędzia Deweloperskie i Diagnostyczne dla OpenCL
- 2.6. Praktyczne Ćwiczenie: Konfiguracja i Pierwszy Program
Moduł 3: Język OpenCL C
- 3.1. Podstawy Języka OpenCL C i Jego Ewolucja w OpenCL 3.0
- 3.2. Typy Danych
- 3.3. Operatory
- 3.4. Kwalifikatory i Atrybuty
- 3.5. Funkcje Wbudowane
- 3.6. Preprocesor OpenCL
- 3.7. Najlepsze Praktyki Pisania Wydajnego Kodu OpenCL C
Moduł 4: Podstawowe Programy OpenCL z Pythonem
- 4.1. Wprowadzenie do PyOpenCL
- 4.2. Struktura Typowej Aplikacji Host (Python + PyOpenCL)
- 4.3. Przykład 1: Prosty Kernel (Mnożenie przez Skalar)
- 4.4. Przykład 2: Dodawanie Wektorów (Vector Addition)
- 4.5. Przykład 3: Demonstracja Sieci Lokalnej i Globalnej (Work-Groups i Local Memory)
- 4.6. Debugowanie Podstawowych Błędów w PyOpenCL
- 4.7. Praktyczne Ćwiczenia z PyOpenCL
Moduł 5: Bardziej Zaawansowane Przykłady Obliczeń
- 5.1. Debugowanie Kerneli: Użycie printf w OpenCL 3.0
- 5.2. Operacja Redukcji Równoległej (Parallel Reduction)
- 5.3. Wyznaczanie Histogramu (Histogram Calculation)
- 5.4. Zbiór Mandelbrota (Mandelbrot Set)
- 5.5. Algorytm Sortowania Bitonicznego (Bitonic Sort)
- 5.6. Przetwarzanie Obrazu (Image Processing) z użyciem Typów Image
- 5.7. Praktyczne Ćwiczenia - Implementacja Wybranego Algorytm
Moduł 6: Zastosowania Branżowe OpenCL
- 6.1. OpenCL w Machine Learning i Deep Learning
- 6.2. OpenCL w Symulacjach Naukowych
- 6.3. OpenCL w Przetwarzaniu Sygnałów i Obrazów
- 6.4. OpenCL w Kryptografii i Bezpieczeństwie
- 6.5. OpenCL w Finansach (High-Performance Computing)
- 6.6. Case Study: Kompleksowy Projekt Branżowy
Moduł 7: OpenCL w Różnych Językach Hosta
- 7.1. Python i PyOpenCL - Szczegółowe Omówienie
- 7.2. C++ i OpenCL - Integracja i Najlepsze Praktyki
- 7.3. Java i JOCL - Możliwości i Ograniczenia
- 7.4. C# i Obliczenia Heterogeniczne
- 7.5. Interoperacyjność OpenCL z Innymi Bibliotekami (NumPy, TensorFlow, itp.)
- 7.6. Praktyczne Porównanie Implementacji w Różnych Językach
Moduł 8: Analiza i Optymalizacja Wydajności w OpenCL
- 8.1. Metodologia Optymalizacji - Systematyczne Podejście
- 8.2. Typowe Problemy Wydajnościowe i Ich Rozwiązania
- 8.3. Profilowanie za pomocą OpenCL API (Events)
- 8.4. Narzędzia Profilujące Producentów
- 8.5. Optymalizacja Kerneli (Device Code)
- 8.6. Optymalizacja Interakcji Host-Device
- 8.7. Wybór Urządzenia i Skalowanie
- 8.8. Studium Przypadku: Optymalizacja Realnego Problemu
Moduł 9: Zaawansowane Funkcje OpenCL 3.0
- 9.1. Funkcjonalności Opcjonalne w OpenCL 3.0
- 9.2. Praca z Obrazami i Teksturami
- 9.3. Subgroups w OpenCL 3.0
- 9.4. Pipes w OpenCL
- 9.5. Interoperacyjność z Grafiką (OpenGL, DirectX)
- 9.6. Zaawansowane Modele Pamięci (SVM)
- 9.7. SPIR-V jako Pośredni Format Kodu
Moduł 10: Podsumowanie i Perspektywy
- 10.1. Kluczowe Koncepcje OpenCL - Przegląd
- 10.2. Przyszłość OpenCL i Obliczeń Heterogenicznych
- 10.3. Ekosystem OpenCL - Narzędzia, Biblioteki, Społeczność
- 10.4. Kiedy Używać OpenCL? - Porównanie z Alternatywnymi Technologiami
- 10.5. Dalsza Nauka i Zasoby
- 10.6. Końcowy Projekt i Prezentacje Uczestników
- 10.7. Sesja Q&A i Dyskusja
.
.
Wymagania
- Znajomość dowolnego języka programowania (strukturalnego lub obiektowego).
Opinie uczestników (3)
Fascynująca treść
Mike Bassi - SRC Aus
Szkolenie - OpenCL
Przetłumaczone przez sztuczną inteligencję
Usystematyzowana wiedza wykładowcy i umiejętność jej przekazania w sposób przystępny słuchaczom na różnym poziomie wiedzy
Zbigniew Kondolewicz
Szkolenie - OpenCL
Eleganckie przykłady i ćwiczenia praktyczne.