Uniwersytet Mikołaja Kopernika w Toruniu - Centralny punkt logowaniaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

CUDA

Informacje ogólne

Kod przedmiotu: 0800-CUDA Kod Erasmus / ISCED: (brak danych) / (0611) Computer use
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
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.

- 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 (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 2017/18" (zakończony)

Okres: 2017-10-01 - 2018-02-25
Wybrany podział planu:


powiększ
zobacz plan zajęć
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 2018/19" (zakończony)

Okres: 2018-10-01 - 2019-02-24
Wybrany podział planu:


powiększ
zobacz plan zajęć
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 2019/20" (zakończony)

Okres: 2019-10-01 - 2020-02-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
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 2020/21" (zakończony)

Okres: 2020-10-01 - 2021-02-21
Wybrany podział planu:


powiększ
zobacz plan zajęć
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.