Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowania
Strona główna

CUDA

Informacje ogólne

Kod przedmiotu: 0800-CUDA
Kod Erasmus / ISCED: (brak danych) / (0611) Computer use Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: CUDA
Jednostka: Wydział Fizyki, Astronomii i Informatyki Stosowanej
Grupy: Informatyka Stosowana s2. Przedmioty do wyboru specjalistyczne (wszystkie)
Kursy komputerowe dla Fizyki Technicznej s2
Punkty ECTS i inne: 4.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: polski
Wymagania wstępne:

Kurs programowania C (np. 0800-JPRO)


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 ( 40 godz.):


- przygotowanie do zajęć - 30

- przygotowanie do kolokwium - 10


Łącznie: 100 godz.

Efekty uczenia się - wiedza:

Dla Informatyki Stosowanej:

W1: Ma pogłębioną wiedzę z zakresu architektury i programowania wielordzeniowych kart graficznych w technologii CUDA – K_W02, K_W04, K_W05 dla IS2

W2: Posiada wiedzę pozwalającą na zrównoleglenie algorytmu przetwarzania danych na karty graficzne w celu przyspieszenia obliczeń - K_W02, K_W03 dla IS2

W3: Zna historię rozwoju, stan obecny oraz trendy rozwojowe układów GPU pozwalających na równoległe przetwarzanie danych K_W09 dla IS2


Dla Fizyki Technicznej:

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:

Dla Informatyki Stosowanej:

U1 – Potrafi zastosować posiadaną wiedzę do analizy i reformułowania algorytmów na wielordzeniową platformę CUDA – K_U04, K_U09 dla ISs2

U2 – Analizuje wydajność algorytmu, jego „wąskie gardła” oraz potrafi dokonać krytycznej oceny przydatności wielordzeniowej karty graficznej w obliczeniach K_U08 dla ISs2

U3 – Wykorzystuje dokumentacje techniczną i potrafi samodzielnie uzupełnić swoją wiedzę podczas tworzenia kodu K_U02, K_U03 dla ISs2


Dla Fizyki Technicznej:

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:

Dla Informatyki Stosowanej:

K1 - Umie krytycznie oceniać swoje umiejętności i szybkość programowania – K_K01 dla ISs2

K2 – Posiada umiejętność prowadzenia dyskusji na temat wydajności proponowanych rozwiązań implementacyjnych, potrafi precyzyjnie zadawać pytania – K_K01 dla ISs2

K3 – Potrafi skutecznie implementować oprogramowanie wykonujące analizę numeryczną danych w problemach naukowo-badawczych i programistyczno-wdrożeniowych – K_K04, K_K06 dla ISs2


Dla Fizyki Technicznej:

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
- wykład informacyjny (konwencjonalny)
- wykład konwersatoryjny

Metody dydaktyczne poszukujące:

- ćwiczeniowa
- laboratoryjna

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.

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.

- 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 (w roku akademickim 2020/2021, kolokwia w formie testu na platformie MS TEAMS)

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ęć.

Zajęcia w cyklu "Semestr zimowy 2021/22" (zakończony)

Okres: 2021-10-01 - 2022-02-20
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 45 godzin więcej informacji
Wykład, 15 godzin więcej informacji
Koordynatorzy: Marcin Sylwestrzak
Prowadzący grup: Marcin Sylwestrzak
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie
Laboratorium - Zaliczenie na ocenę
Wykład - Zaliczenie

Zajęcia w cyklu "Semestr zimowy 2022/23" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 45 godzin więcej informacji
Wykład, 15 godzin więcej informacji
Koordynatorzy: Marcin Sylwestrzak
Prowadzący grup: Marcin Sylwestrzak
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie
Laboratorium - Zaliczenie na ocenę
Wykład - Zaliczenie
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Mikołaja Kopernika w Toruniu.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ kontakt deklaracja dostępności USOSweb 7.0.2.0-1 (2024-03-12)