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

Programowanie GPU

Informacje ogólne

Kod przedmiotu: 1000-I2PGPU
Kod Erasmus / ISCED: (brak danych) / (0613) Tworzenie i analiza oprogramowania i aplikacji Kod ISCED - Międzynarodowa Standardowa Klasyfikacja Kształcenia (International Standard Classification of Education) została opracowana przez UNESCO.
Nazwa przedmiotu: Programowanie GPU
Jednostka: Wydział Matematyki i Informatyki
Grupy: Inf., I st., stacjonarne, 2 rok, przedmioty do wyboru
Inf., I st., stacjonarne, 3 rok, przedmioty do wyboru
Inf., II st, stacjonarne, przedmioty do wyboru
Punkty ECTS i inne: 6.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:

Podstawy programowania, umiejętność programowania w C lub C++.

Rodzaj przedmiotu:

przedmiot fakultatywny

Całkowity nakład pracy studenta:

- godziny realizowane z udziałem nauczyciela: 60h (wykład 30h, ćwiczenia 30h)

- czas poświęcony na pracę indywidualną nad projektem zaliczeniowym (programem wykorzystującym możliwości równoległe GPU): 60h

- czas wymagany do przygotowania się do ćwiczeń i rozwiązanie wymaganej ilości przykładowych problemów (zadań): 30h

- czas wymagany do odbycia obowiązkowych praktyk: 0h


Razem 150h,


6ptk. ECTS

Efekty uczenia się - wiedza:

W1: Znajomość architektury GPU i jej wpływu na model programowania. Wiedza na temat różnych rodzajów pamięci i ich sposobów wykorzystania.

W2: Znajomość zasad pisania aplikacji (programów ogólnego zastosowania) na karty graficzne.

W3: Znajomość języków programowania i umiejętność ich wykorzystania do portowania aplikacji na karty GPU.

W4: Znajomość podstawowych algorytmów numerycznych (wzorców programistycznych) i ich implementacji na karty graficzne.

Efekty uczenia się - umiejętności:

U1: Umiejętność programowania GPGPU, wykorzystując możliwości obliczeń równoległych procesorów GPU.

U2: Umiejętność sprawdzenia poprawności kodu równoległego na GPU i analizy jego wydajności


Efekty uczenia się - kompetencje społeczne:

K1: Prezentacja działania programu zaliczeniowego i przedstawienie sposobu jego działania (opis kodu źródłowego).

K2: Skutecznie przekazuje innym swoje myśli w zrozumiały sposób

Metody dydaktyczne podające:

- wykład informacyjny (konwencjonalny)

Metody dydaktyczne poszukujące:

- ćwiczeniowa
- projektu

Skrócony opis:

Wykład stanowi wprowadzenie do programowania równoległego ogólnego zastosowania na karty graficzne GP GPU.

Pełny opis:

  1. Wprowadzenie do programowania kart graficznych
  2. Przegląd podstawowych architektur sprzętowych (ATI, nVidia) wraz z implikacjami
  3. Przegląd języków i narzędzi do programowania kart graficznych
  4. Wprowadzenie do OpenCL / SYCL
  5. Podstawy programowana w języku CUDA
  6. Portowanie aplikacji z wykorzystaniem dyrektyw kompilatora - standard OpenACC
  7. Metody i mechanizmy optymalizacji kodu GPGPU
  8. Przykładowe problemy numeryczne i ich implementacja na karty graficzne
  9. Debugowanie, profilowanie i optymalizacja kodu.
Literatura:

[1] Jason Sanders, Edward Kandrot, "CUDA w przykładach: wprowadzenie do ogólnego programowania procesorów GPU''

[2] Jason Sanders, Edward Kandrot, "CUDA by Example: An Introduction to General-Purpose GPU Programming"

[3] David B. Kirk, Wen-mei W. Hwu, "Programming Massively Parallel Processors: A Hands-on Approach"

[4] Rob Farber, "CUDA application design and development"

[5] Duane Storti, Mete Yurtoglu: "CUDA for Engineers: An Introduction to High-Performance Parallel Computing"

Materiały w sieci:

[5] NVIDIA, "CUDA Toolkit Documentation", http://docs.nvidia.com/cuda

[6] NVIDIA Developers Blog, https://developer.nvidia.com/blog/

Metody i kryteria oceniania:

Zaliczenie na podstawie obecności i przedstawienia indywidualne projektu programistycznego polegającym na implementacji wybranego algorytmu na karty graficzne: W1, W2, W3, U1, U2, K1, K2

Wykonanie na zajęciach lub indywidualnie zadań programistycznych z zakresu obliczeń GPU: W4, U1

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, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Jakub Narębski
Prowadzący grup: Jakub Narębski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

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, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Jakub Narębski
Prowadzący grup: Jakub Narębski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 16 miejsc więcej informacji
Wykład, 30 godzin, 32 miejsc więcej informacji
Koordynatorzy: Jakub Narębski
Prowadzący grup: Jakub Narębski
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Egzamin
Laboratorium - Zaliczenie na ocenę
Wykład - Egzamin
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)