Conducted in
term:
2022
Erasmus code: 11.3
ISCED code: 0613
ECTS credits:
4
Language:
Polish
Organized by:
Institute of Computer Science
Graphics Cards Programming 420-IS1-3PKG
This course has not yet been described...
Type of course
elective courses
Mode
(in Polish) w sali
Requirements
Algorithms and Data Structures
Computer Systems Architecture
Introduction to Structured Programming
Advanced Programming
Computer Systems Architecture
Introduction to Structured Programming
Advanced Programming
Prerequisites
Prerequisites (description)
(in Polish) Słuchacz powinien dobrze znać język C/C++, podstawy programowania proceduralnego i obiektowego. Powinien znać podstawowe zagadnienia programowanie równoległego i podstawy architektury komputerów. Dobrze widziana znajomość języków niskopopoziomowych.
Procesory graficzne są klasą procesorów wyspecjalizowanych do prowadzenia wydajnych obliczeń na masywnie równoległych strumieniach danych. Jest to realizowane dzięki zastosowaniu architektury o wielkiej skali równoległości, pozwalającej na prowadzenie jednocześnie obliczeń dla wielu tysięcy wątków sprzętowych.
Przedmiot stanowi wprowadzenie do zagadnienia programowania tych procesorów, ze szczególnym uwzględnieniem zastosowań w obliczeniach naukowych i uczeniu maszynowym.
W trakcie zajęć będą poruszane następujące zagadnienia:
Wprowadzenie do programowania równoległego
- cele zrównoleglania aplikacji,
- skalowalność i przyśpieszenie.
Opis architektury GPGPU
- model SIMT: wątki, warpy, bloki
- multiprocesory,
- model pamięci,
Podstawy programowania w CUDA
- konstrukcja programów w CUDA,
- równoległość operacji,
- synchronizacje,
- operacje na wektorach,
- operacje na macierzach,
Wprowadzenie do portowania kodów na CUDA
- profilowanie kodów skalarnych
- opis przykładu i portowanego kodu.
Debugowanie kodu w CUDA
- najczęstsze błędy w kodach,
- odczytywanie komunikatów błędu z kerneli,
- Narzędzia do profilowania i debugowania.
Optymalizacja obliczeń – 90 min
- zastosowanie różnych rodzajów pamięci,
- wykorzystanie rejestrów,
- obliczanie obciążenie karty,
- operacje atomowe,
- redukcja,
- sumy prefiksowe.
Zastosowanie strumieni CUDA
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: