Programowanie na kartach graficznych
Informacje ogólne
Kod przedmiotu: | 0800-PROGRAF |
Kod Erasmus / ISCED: |
(brak danych)
/
(0611) Computer use
|
Nazwa przedmiotu: | Programowanie na kartach graficznych |
Jednostka: | Wydział Fizyki, Astronomii i Informatyki Stosowanej |
Grupy: | |
Punkty ECTS i inne: |
3.00
|
Język prowadzenia: | polski |
Wymagania wstępne: | Kurs programowania C (np. 0800-JPRO) |
Rodzaj przedmiotu: | przedmiot obligatoryjny |
Całkowity nakład pracy studenta: | Godziny realizowane z udziałem nauczycieli ( 60 godz.): - udział w wykładach – 15 - udział w laboratorium – 45 Czas poświęcony na pracę indywidualną studenta ( 30 godz.): - przygotowanie do zajęć - 20 - przygotowanie do kolokwium - 10 Łącznie: 90 godz. (3 ECTS) |
Efekty uczenia się - wiedza: | W1: Ma pogłębioną wiedzę z zakresu architektury i programowania wielordzeniowych kart graficznych w technologii CUDA – K_W02, K_W04, K_W05, K_W07 dla FTs2 W2: Posiada wiedzę pozwalającą na zrównoleglenie algorytmu przetwarzania danych na karty graficzne w celu przyspieszenia obliczeń - K_W04, K_W07 dla FTs2 W3: Zna historię rozwoju, stan obecny oraz trendy rozwojowe układów GPU pozwalających na równoległe przetwarzanie danych K_W02, K_W07 dla FTs2 |
Efekty uczenia się - umiejętności: | U1 – Potrafi zastosować posiadaną wiedzę do analizy i reformułowania algorytmów na wielordzeniową platformę CUDA – K_U01, K_U09 dla FTs2 U2 – Analizuje wydajność algorytmu, jego „wąskie gardła” oraz potrafi dokonać krytycznej oceny przydatności wielordzeniowej karty graficznej w obliczeniach K_U05 dla FTs2 U3 – Wykorzystuje dokumentacje techniczną i potrafi samodzielnie uzupełnić swoją wiedzę podczas tworzenia kodu K_U03, K_U09 dla FTs2 |
Efekty uczenia się - kompetencje społeczne: | K1 - Umie krytycznie oceniać wyniki wydajności przetwarzania danych przedstawiane w literaturze – K_K01 dla FTs2 K2 – Umie krytycznie oceniać swoje umiejętności i szybkość programowania – K_K01 dla FTs2 K3 – Posiada umiejętność prowadzenia dyskusji na temat wydajności proponowanych rozwiązań implementacyjnych, potrafi precyzyjnie zadawać pytania – K_K01 dla FTs2 |
Metody dydaktyczne: | Metody dydaktyczne podające: - pogadanka - wykład informacyjny (konwencjonalny) - wykład konwersatoryjny Metody dydaktyczne poszukujące: - ćwiczeniowa - laboratoryjna |
Metody dydaktyczne podające: | - pogadanka |
Metody dydaktyczne poszukujące: | - ćwiczeniowa |
Skrócony opis: |
NVIDIA wprowadziła technologię CUDA umożliwiającą wykorzystanie procesorów graficznych do prowadzenia równoległych obliczeń ogólnego przeznaczenia na procesorach graficznych. Celem kursu jest wprowadzenie do programowania procesorów graficznych w języku CUDA C. Główny nacisk położony zostanie na wydajność rozwijanych aplikacji poprzez wykorzystywanie różnych typów pamięci (pamięć urządzenia, shared, rejestry) oraz podziału zadań między wątki. Przedstawione zostaną biblioteki cuFFT i cuBLAS, wykorzystanie operacji atomowych oraz strumienie. |
Pełny opis: |
Program zajęć (wykład): - Historia i architektura GPU. - Pierwszy program w CUDA, wywołanie funkcji jądra. - Wątki i ich grupowanie. - Wykorzystanie pamięci wspólnej (ang. shared memory). - Używanie narzędzia CUDA Occupancy calculator. - Pamięć stała i zdarzenia. - Użycie pamięci tekstur. - Współpraca z OpenGL. - Operacje atomowe. - Strumienie. - Wykorzystanie zewnętrznych bibliotek: -- cuBLAS -- cuFFT Program zajęć (Laboratorium): - sumowanie wektorów, - obliczanie iloczynów skalarnych (4 różne metody wraz z analizą ich wydajności), - mnożenie macierzy (3 różne metody wraz z analizą wydajności), - filtracja sygnałów, - analiza wydajności dostępu do pamięci shared - wielowątkowe tworzenie histogramów (operacje atomowe) - strumieniowe przetwarzanie danych - ćwiczenia z użeciem bilbiotek cuBLAS i cuFFT |
Literatura: |
Literatura podstawowa: 1. Jason Sanders, Edward Kandrot, "CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU", Helion 2012 2. NVIDIA, "CUDA_C_Programming_Guide" 3. NVIDIA, "CUDA_C_Best_Practices_Guide" Literatura uzupełniająca: 1. David B. Kirk and Wen-mei W. Hwu, "Programming massively parallel processors : a hands-on approach", Burlington, MA : Morgan Kaufmann Publ., 2010 |
Metody i kryteria oceniania: |
Metody oceniania: kolokwium- W1, W2, W3, U1, U2, U3, K1, K2, K3 Kryteria oceniania: Wykład: zaliczenie bez oceny na podstawie laboratorium Laboratorium: zaliczenie na ocenę na podstawie dwóch kolokwiów ndst – <50% dst- 50% - 59% dst plus- 60% - 69% db- 70% - 79% db plus- 80% - 89% bdb- >90% Możliwość zdobycia dodatkowej oceny/plusów za aktywność w czasie zajęć. |
Praktyki zawodowe: |
nie dotyczy |
Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)
Okres: | 2023-10-01 - 2024-02-19 |
Przejdź do planu
PN WT WYK
LAB
ŚR CZ PT |
Typ zajęć: |
Laboratorium, 45 godzin
Wykład, 15 godzin
|
|
Koordynatorzy: | Marcin Sylwestrzak | |
Prowadzący grup: | Marcin Sylwestrzak | |
Lista studentów: | (nie masz dostępu) | |
Zaliczenie: |
Przedmiot -
Zaliczenie na ocenę
Laboratorium - Zaliczenie na ocenę Wykład - Zaliczenie |
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.