Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)

Sylabus przedmiotu Programowanie kart graficznych - Przedmiot obieralny II:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauk technicznych, studiów inżynierskich
Profil ogólnoakademicki
Moduł
Przedmiot Programowanie kart graficznych - Przedmiot obieralny II
Specjalność systemy komputerowe i oprogramowanie
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Sławomir Wernikowski <Slawomir.Wernikowski@zut.edu.pl>
Inni nauczyciele Sławomir Wernikowski <Slawomir.Wernikowski@zut.edu.pl>
ECTS (planowane) 2,0 ECTS (formy) 2,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 4 Grupa obieralna 8

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL5 15 1,10,38zaliczenie
wykładyW5 15 0,90,62zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1biegła umiejętność programowania w języku C/C++
W-2umiejętnośc pracy w środowisku Linux
W-3znajomość podstawowych mechanizmów programowania równoległego
W-4pożądana znajomość OpenGL

Cele przedmiotu

KODCel modułu/przedmiotu
C-1wiedza nt. architektury sprzętowej CUDA i modelu SIMT
C-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
C-3bazowa umiejętność posługiwania się językiem PTX
C-4umiejętność korzystania z narzędzi pakietu CUDA SDK

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Przygotowanie środowiska pracy; Zapoznanie z narzędziami z pakietu CUDA SDK; Kompilacja i uruchomienie gotowego programu przykładowego; Prosta modyfikacja zaprezentowanego kodu; Konfiguracja środowiska do pracy zdalnej;2
T-L-2Implementacja wybranego algorytmu w formie sekwencyjnej (CPU) i równoległej (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru zagadnienia obliczeniowego2
T-L-3Przetwarzanie obrazów rastrowych w sposób sekwencyjny (CPU) i równoległy (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru i struktury obrazu;2
T-L-4Implementacja wybranego zestawu zadań (punktowanych indywidualnie) z wykorzystaniem CUDA C2
T-L-5Implementacja rozwiązania zadania obliczeniowego z użyciem interfejsu API sterownika CUDA;2
T-L-6Implementacja rozwiązania zadania obliczeniowego z użyciem języka PTX;2
T-L-7Projekt i implementacja programu demo ilustrującego wykorzystanie interfejsu CUDA OpenGL;3
15
wykłady
T-W-1Wprowadzenie do programowania w technologii NVIDIA CUDA: terminologia, rys historyczny, charakterystyka technologii, organizacja pamięci, konwencje API, narzędzia programisty, wątki, dialekt CUDA C2
T-W-2Architektura i API (część 1): model architektury CUDA, składnia i semantyka rozszerzeń języka CUDA C, hierarchia wątków, hierarchia pamięci, struktura kodu wynikowego kompilatora NVCC, przegląd podstawowych usług CUDA API2
T-W-3Architektura i API (część 2): zarządzanie pamięcią urządzenia CUDA, przykład - mnożenie macierzy, współpraca wielu urządzeń CUDA1
T-W-4Architektura i API (część 3): tryby pracy pamięci urządzenia CUDA, mapowanie pamięci, ciąg dalszy prezentacji funkcji API, praca asynchroniczna, strumienie wątków, zdarzenia,2
T-W-5Sprzęt i obliczenia: szczegóły implementacji sprzętowej, architektura SIMT, organizowanie współpracy wątków, możliwości architektury w zależności od CC, implementacja arytmetyki zmiennoprzecinkowej, dokładność obliczeń, odwijanie pętli2
T-W-6Podstawy programowania na poziomie API sterownika: zaawansowane wykorzystanie kompilatora NVCC, fazy pracy NVCC, poziomy abstrakcji kodu źródłowego, konstrukcja kodu wykorzystującego API sterownika, przykładowy program2
T-W-7Język PTX: składnia, typy danych, deklaracje danych skalarnych i tablicowych, konwencje nazewnicze, elementarny pozdbiór listy rozkazów, komunikacja z kodem hosta, kompletny przykład rozwiązania problemu za pomocą języka PTX2
T-W-8Grafika: CUDA a OpenGL, rejestracja zasobów, osobliwości API, wybrany podzbiór funkcji, kompletny przykładowy program2
15

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1uczestnictwo w zajęciach laboratoryjnych15
A-L-2indywidualne przygotowanie do zajęć laboratoryjnych7
A-L-3implementacja zadań laboratoryjnych (praca zdalna)7
A-L-4konsultacje (osobiste)2
31
wykłady
A-W-1udział w wykładach15
A-W-2samodzielne studiowanie tematyki wykładów10
A-W-3Udział w konsultacjach i zaliczeniu2
A-W-4Udział w konsultacjach i zaliczeniu formy zajęć.2
29

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1wykład problemowy
M-2wykład informacyjny
M-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
S-3Ocena podsumowująca: kolokwium zaliczeniowe (test wielokrotnego wyboru)

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O/2/7_W01
wiedza nt. architektury SIMT i jej implementacji pod postacią rozwiązania NVIDIA CUDA
I_1A_W10, I_1A_W14T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W08InzA_W01, InzA_W02, InzA_W03, InzA_W05C-1T-W-2, T-W-3, T-W-4M-1, M-2S-3
I_1A_O/2/7_W02
wiedza w zakresie składni i semantyki języka programowania CUDA C/C++
I_1A_W05, I_1A_W06T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W09InzA_W01, InzA_W02, InzA_W04, InzA_W05C-2T-W-6, T-W-7, T-W-8M-1, M-2S-3

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O/2/7_U01
posługiwanie się firmową dokumentacją dostarczoną przez producenta sprzętu implementującego architekturę CUDA
I_1A_U13T1A_U01, T1A_U03, T1A_U06C-2T-L-1M-3, M-4S-1, S-2
I_1A_O/2/7_U02
posługiwanie się narzędziami CUDA SDK
I_1A_U03, I_1A_U17T1A_U01, T1A_U08, T1A_U09, T1A_U10, T1A_U13, T1A_U14, T1A_U15InzA_U01, InzA_U02, InzA_U03, InzA_U05, InzA_U06, InzA_U07C-4T-L-1, T-L-2M-1, M-2, M-3S-1, S-2
I_1A_O/2/7_U03
implementacja wydajnego kodu równoległego wykorzystującego możliwości architektury SIMT
I_1A_U15, I_1A_U19T1A_U08, T1A_U09, T1A_U13, T1A_U14, T1A_U15, T1A_U16InzA_U01, InzA_U02, InzA_U05, InzA_U06, InzA_U07, InzA_U08C-2, C-4T-L-3, T-L-4, T-L-5, T-L-7M-1, M-2, M-3, M-4S-1, S-2
I_1A_O/2/7_U04
generowanie grafiki w środowisku SIMT
I_1A_U14T1A_U07, T1A_U14, T1A_U15, T1A_U16InzA_U06, InzA_U07, InzA_U08C-2T-L-7M-1, M-2, M-3, M-4S-1, S-2

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_O/2/7_K01
rozwiązywanie problemów implementacyjnych z użyciem dokumentacji firmowej
I_1A_K01T1A_K01, T1A_K07C-4T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8M-3, M-4S-1, S-2
I_1A_O/2/7_K02
praca grupowa on-site i off-site
I_1A_K03T1A_K02, T1A_K03, T1A_K04InzA_K01C-2T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7M-3, M-4S-1, S-2

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_O/2/7_W01
wiedza nt. architektury SIMT i jej implementacji pod postacią rozwiązania NVIDIA CUDA
2,0niespełnienie kryteriów uzyskania oceny 3.0
3,0znajomość cech wyróżniających architekturę SIMT i implementację CUDA
3,5biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA
4,0biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; zdolność do objaśnienia mechanizmów współdziałania elementów architektury CUDA
4,5biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; biegłość w objaśnianiu mechanizmów współdziałania elementów architektury CUDA
5,0biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; biegłość w objaśnianiu mechanizmów współdziałania elementów architektury CUDA; zdolność wybierania/odrzucania poszczególnych udogodnień architektury CUDA do rozwiązywania określonych problemów obliczeniowych
I_1A_O/2/7_W02
wiedza w zakresie składni i semantyki języka programowania CUDA C/C++
2,0niespełnienie kryteriów uzyskania oceny 3.0
3,0znajomość składni języka CUDA/C i typowych zastosowań
3,5biegła znajomość składni języka CUDA/C i typowych zastosowań
4,0biegła znajomość składni języka CUDA/C i typowych zastosowań; podstawowa znajomość semantyki języka CUDA/C
4,5biegła znajomość składni języka CUDA/C i typowych zastosowań; biegla znajomość semantyki języka CUDA/C
5,0biegła znajomość składni języka CUDA/C i typowych zastosowań; biegla znajomość semantyki języka CUDA/C; znajomośc udogodnień NVIDIA CUDA SDK

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_O/2/7_U01
posługiwanie się firmową dokumentacją dostarczoną przez producenta sprzętu implementującego architekturę CUDA
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0podstawowa znajomość struktury i wersjonowania dokumentacji firmowej
3,5biegła znajomość struktury i wersjonowania dokumentacji firmowej
4,0biegła znajomość struktury i wersjonowania dokumentacji firmowej; posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań
4,5biegła znajomość struktury i wersjonowania dokumentacji firmowej; biegłe posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań
5,0biegła znajomość struktury i wersjonowania dokumentacji firmowej; biegłe posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań; wyszukiwanie w dokumentacji informacji nieudostępnionej w inny sposób przy rozwiązywaniu zadań
I_1A_O/2/7_U02
posługiwanie się narzędziami CUDA SDK
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań
3,5biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań
4,0biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; umiejętność budowania własnej niestandardowej konfiguracji
4,5biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; biegła umiejętność budowania własnej niestandardowej konfiguracji
5,0biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; biegła umiejętność budowania własnej niestandardowej konfiguracji; umiejętnośc budowania złożonych frameworków z użyciem narzędzi CUDA SDK
I_1A_O/2/7_U03
implementacja wydajnego kodu równoległego wykorzystującego możliwości architektury SIMT
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
3,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
4,0biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
4,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
5,0biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań; umiejętność wiarygodnej ewaluacji wydajności zaimplementowanych rozwiązań
I_1A_O/2/7_U04
generowanie grafiki w środowisku SIMT
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
3,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
4,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
4,5umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
5,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań; umiejętność wiarygodnej ewaluacji wydajności zaimplementowanych rozwiązań

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt kształceniaOcenaKryterium oceny
I_1A_O/2/7_K01
rozwiązywanie problemów implementacyjnych z użyciem dokumentacji firmowej
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
3,5biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
4,0biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
4,5biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; biegłe weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
5,0biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; biegłe weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań;wyszukiwanie informacji nieudostępnionej w inny sposób do rozwiązywania postawionych zadań
I_1A_O/2/7_K02
praca grupowa on-site i off-site
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0wykazywanie aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu
3,5wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu
4,0wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie aktywnej postawy przy implementacji rozwiązania postawionego problemu
4,5wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie wyróżniającej aktywnej postawy przy implementacji rozwiązania postawionego problemu
5,0wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie wyróżniającej aktywnej postawy przy implementacji rozwiązania postawionego problemu;wykazywanie aktywnej postawy przy testowaniu i badaniu wydajności rozwiązania postawionego problemu

Literatura podstawowa

  1. NVIDIA Corp., NVIDIA CUDA C Programming Guide, NVIDIA Corp., Santa Clara, 2011, 4, http://developer.download.nvidia.com/compute/cuda/4_0/toolkit/docs/CUDA_C_Programming_Guide.pdf
  2. NVIDIA Corp., CUDA API Reference Manual, NVIDIA Corp., Santa Clara, 2011, 4, http://developer.download.nvidia.com/compute/cuda/4_0/toolkit/docs/CUDA_Toolkit_Reference_Manual.pdf
  3. NVIDIA Corp., The CUDA Compiler Driver NVCC, NVIDIA Corp., Santa Clara, 2011, 4, http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/nvcc.pdf

Literatura dodatkowa

  1. NVIDIA Corp., CUDA C Best Practices Guide, NVIDIA Corp., Santa Clara, 2011, 4, http://developer.download.nvidia.com/compute/cuda/4_0_rc2/toolkit/docs/CUDA_C_Best_Practices_Guide.pdf
  2. NVIDIA Corp, PTX: Parallel Thread Execution ISA, NVIDIA Corp., Santa Clara, 2011, 2,3, http://developer.download.nvidia.com/compute/cuda/4_0_rc2/toolkit/docs/ptx_isa_2.3.pdf

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Przygotowanie środowiska pracy; Zapoznanie z narzędziami z pakietu CUDA SDK; Kompilacja i uruchomienie gotowego programu przykładowego; Prosta modyfikacja zaprezentowanego kodu; Konfiguracja środowiska do pracy zdalnej;2
T-L-2Implementacja wybranego algorytmu w formie sekwencyjnej (CPU) i równoległej (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru zagadnienia obliczeniowego2
T-L-3Przetwarzanie obrazów rastrowych w sposób sekwencyjny (CPU) i równoległy (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru i struktury obrazu;2
T-L-4Implementacja wybranego zestawu zadań (punktowanych indywidualnie) z wykorzystaniem CUDA C2
T-L-5Implementacja rozwiązania zadania obliczeniowego z użyciem interfejsu API sterownika CUDA;2
T-L-6Implementacja rozwiązania zadania obliczeniowego z użyciem języka PTX;2
T-L-7Projekt i implementacja programu demo ilustrującego wykorzystanie interfejsu CUDA OpenGL;3
15

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie do programowania w technologii NVIDIA CUDA: terminologia, rys historyczny, charakterystyka technologii, organizacja pamięci, konwencje API, narzędzia programisty, wątki, dialekt CUDA C2
T-W-2Architektura i API (część 1): model architektury CUDA, składnia i semantyka rozszerzeń języka CUDA C, hierarchia wątków, hierarchia pamięci, struktura kodu wynikowego kompilatora NVCC, przegląd podstawowych usług CUDA API2
T-W-3Architektura i API (część 2): zarządzanie pamięcią urządzenia CUDA, przykład - mnożenie macierzy, współpraca wielu urządzeń CUDA1
T-W-4Architektura i API (część 3): tryby pracy pamięci urządzenia CUDA, mapowanie pamięci, ciąg dalszy prezentacji funkcji API, praca asynchroniczna, strumienie wątków, zdarzenia,2
T-W-5Sprzęt i obliczenia: szczegóły implementacji sprzętowej, architektura SIMT, organizowanie współpracy wątków, możliwości architektury w zależności od CC, implementacja arytmetyki zmiennoprzecinkowej, dokładność obliczeń, odwijanie pętli2
T-W-6Podstawy programowania na poziomie API sterownika: zaawansowane wykorzystanie kompilatora NVCC, fazy pracy NVCC, poziomy abstrakcji kodu źródłowego, konstrukcja kodu wykorzystującego API sterownika, przykładowy program2
T-W-7Język PTX: składnia, typy danych, deklaracje danych skalarnych i tablicowych, konwencje nazewnicze, elementarny pozdbiór listy rozkazów, komunikacja z kodem hosta, kompletny przykład rozwiązania problemu za pomocą języka PTX2
T-W-8Grafika: CUDA a OpenGL, rejestracja zasobów, osobliwości API, wybrany podzbiór funkcji, kompletny przykładowy program2
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1uczestnictwo w zajęciach laboratoryjnych15
A-L-2indywidualne przygotowanie do zajęć laboratoryjnych7
A-L-3implementacja zadań laboratoryjnych (praca zdalna)7
A-L-4konsultacje (osobiste)2
31
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1udział w wykładach15
A-W-2samodzielne studiowanie tematyki wykładów10
A-W-3Udział w konsultacjach i zaliczeniu2
A-W-4Udział w konsultacjach i zaliczeniu formy zajęć.2
29
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_W01wiedza nt. architektury SIMT i jej implementacji pod postacią rozwiązania NVIDIA CUDA
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W10zna podstawowe architektury systemów komputerowych, w tym systemów wbudowanych
I_1A_W14zna wybrane metody i techniki służące do komunikacji człowieka z komputerem
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W08ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych pozatechnicznych uwarunkowań działalności inżynierskiej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W03ma podstawową wiedzę niezbędną do rozumienia społecznych, ekonomicznych, prawnych i innych uwarunkowań działalności inżynierskiej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-1wiedza nt. architektury sprzętowej CUDA i modelu SIMT
Treści programoweT-W-2Architektura i API (część 1): model architektury CUDA, składnia i semantyka rozszerzeń języka CUDA C, hierarchia wątków, hierarchia pamięci, struktura kodu wynikowego kompilatora NVCC, przegląd podstawowych usług CUDA API
T-W-3Architektura i API (część 2): zarządzanie pamięcią urządzenia CUDA, przykład - mnożenie macierzy, współpraca wielu urządzeń CUDA
T-W-4Architektura i API (część 3): tryby pracy pamięci urządzenia CUDA, mapowanie pamięci, ciąg dalszy prezentacji funkcji API, praca asynchroniczna, strumienie wątków, zdarzenia,
Metody nauczaniaM-1wykład problemowy
M-2wykład informacyjny
Sposób ocenyS-3Ocena podsumowująca: kolokwium zaliczeniowe (test wielokrotnego wyboru)
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3.0
3,0znajomość cech wyróżniających architekturę SIMT i implementację CUDA
3,5biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA
4,0biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; zdolność do objaśnienia mechanizmów współdziałania elementów architektury CUDA
4,5biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; biegłość w objaśnianiu mechanizmów współdziałania elementów architektury CUDA
5,0biegła znajomość cech wyróżniających architekturę SIMT i implementację CUDA; biegłość w objaśnianiu mechanizmów współdziałania elementów architektury CUDA; zdolność wybierania/odrzucania poszczególnych udogodnień architektury CUDA do rozwiązywania określonych problemów obliczeniowych
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_W02wiedza w zakresie składni i semantyki języka programowania CUDA C/C++
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W05ma wiedzę w zakresie algorytmizacji i zasad tworzenia struktur danych
I_1A_W06zna wybrane języki i techniki programowania, podstawowe techniki projektowania i wytwarzania aplikacji oraz systemów informatycznych
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_W03ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu studiowanego kierunku studiów
T1A_W05ma podstawową wiedzę o trendach rozwojowych z zakresu dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów
T1A_W06ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
T1A_W07zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
T1A_W09ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_W01ma podstawową wiedzę o cyklu życia urządzeń, obiektów i systemów technicznych
InzA_W02zna podstawowe metody, techniki, narzędzia i materiały stosowane przy rozwiązywaniu prostych zadań inżynierskich z zakresu studiowanego kierunku studiów
InzA_W04ma podstawową wiedzę dotyczącą zarządzania, w tym zarządzania jakością, i prowadzenia działalności gospodarczej
InzA_W05zna typowe technologie inżynierskie w zakresie studiowanego kierunku studiów
Cel przedmiotuC-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
Treści programoweT-W-6Podstawy programowania na poziomie API sterownika: zaawansowane wykorzystanie kompilatora NVCC, fazy pracy NVCC, poziomy abstrakcji kodu źródłowego, konstrukcja kodu wykorzystującego API sterownika, przykładowy program
T-W-7Język PTX: składnia, typy danych, deklaracje danych skalarnych i tablicowych, konwencje nazewnicze, elementarny pozdbiór listy rozkazów, komunikacja z kodem hosta, kompletny przykład rozwiązania problemu za pomocą języka PTX
T-W-8Grafika: CUDA a OpenGL, rejestracja zasobów, osobliwości API, wybrany podzbiór funkcji, kompletny przykładowy program
Metody nauczaniaM-1wykład problemowy
M-2wykład informacyjny
Sposób ocenyS-3Ocena podsumowująca: kolokwium zaliczeniowe (test wielokrotnego wyboru)
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3.0
3,0znajomość składni języka CUDA/C i typowych zastosowań
3,5biegła znajomość składni języka CUDA/C i typowych zastosowań
4,0biegła znajomość składni języka CUDA/C i typowych zastosowań; podstawowa znajomość semantyki języka CUDA/C
4,5biegła znajomość składni języka CUDA/C i typowych zastosowań; biegla znajomość semantyki języka CUDA/C
5,0biegła znajomość składni języka CUDA/C i typowych zastosowań; biegla znajomość semantyki języka CUDA/C; znajomośc udogodnień NVIDIA CUDA SDK
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_U01posługiwanie się firmową dokumentacją dostarczoną przez producenta sprzętu implementującego architekturę CUDA
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U13ma umiejętności w zakresie znajomości języka obcego na poziomie biegłości B2 Europejskiego Systemu Opisu Kształcenia Językowego Rady Europy oraz posługiwania się językiem specjalistycznym z zakresu kierunku studiów
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U03potrafi przygotować w języku polskim i języku obcym, uznawanym za podstawowy dla dziedzin nauki i dyscyplin naukowych właściwych dla studiowanego kierunku studiów, dobrze udokumentowane opracowanie problemów z zakresu studiowanego kierunku studiów
T1A_U06ma umiejętności językowe w zakresie dziedzin nauki i dyscyplin naukowych, właściwych dla studiowanego kierunku studiów, zgodne z wymaganiami określonymi dla poziomu B2 Europejskiego Systemu Opisu Kształcenia Językowego
Cel przedmiotuC-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
Treści programoweT-L-1Przygotowanie środowiska pracy; Zapoznanie z narzędziami z pakietu CUDA SDK; Kompilacja i uruchomienie gotowego programu przykładowego; Prosta modyfikacja zaprezentowanego kodu; Konfiguracja środowiska do pracy zdalnej;
Metody nauczaniaM-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0podstawowa znajomość struktury i wersjonowania dokumentacji firmowej
3,5biegła znajomość struktury i wersjonowania dokumentacji firmowej
4,0biegła znajomość struktury i wersjonowania dokumentacji firmowej; posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań
4,5biegła znajomość struktury i wersjonowania dokumentacji firmowej; biegłe posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań
5,0biegła znajomość struktury i wersjonowania dokumentacji firmowej; biegłe posługiwanie się wskazaną dokumentacją przy rozwiązywaniu zadań; wyszukiwanie w dokumentacji informacji nieudostępnionej w inny sposób przy rozwiązywaniu zadań
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_U02posługiwanie się narzędziami CUDA SDK
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U03umie oceniać przydatność i stosować różne paradygmaty programowania, języki i środowiska programistyczne do rozwiązywania problemów dziedzinowych
I_1A_U17potrafi ocenić przydatność rutynowych metod i narzędzi rozwiązania prostego zadania inżynierskiego, typowego dla reprezentowanej dyscypliny inżynierskiej oraz wybrać i zastosować właściwą metodę i narzędzia
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U01potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł, także w języku angielskim lub innym języku obcym uznawanym za język komunikacji międzynarodowej w zakresie studiowanego kierunku studiów; potrafi integrować uzyskane informacje, dokonywać ich interpretacji, a także wyciągać wnioski oraz formułować i uzasadniać opinie
T1A_U08potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
T1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U10potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
T1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U03potrafi - przy formułowaniu i rozwiązywaniu zadań inżynierskich - dostrzegać ich aspekty systemowe i pozatechniczne
InzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
Cel przedmiotuC-4umiejętność korzystania z narzędzi pakietu CUDA SDK
Treści programoweT-L-1Przygotowanie środowiska pracy; Zapoznanie z narzędziami z pakietu CUDA SDK; Kompilacja i uruchomienie gotowego programu przykładowego; Prosta modyfikacja zaprezentowanego kodu; Konfiguracja środowiska do pracy zdalnej;
T-L-2Implementacja wybranego algorytmu w formie sekwencyjnej (CPU) i równoległej (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru zagadnienia obliczeniowego
Metody nauczaniaM-1wykład problemowy
M-2wykład informacyjny
M-3ćwiczenia laboratoryjne (praca on-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań
3,5biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań
4,0biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; umiejętność budowania własnej niestandardowej konfiguracji
4,5biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; biegła umiejętność budowania własnej niestandardowej konfiguracji
5,0biegła umiejętność wykorzystania podstawowych narzędzi CUDA SDK i dopasowywanie typowej konfiguracji do rozwiązywania postawionych zadań; biegła umiejętność budowania własnej niestandardowej konfiguracji; umiejętnośc budowania złożonych frameworków z użyciem narzędzi CUDA SDK
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_U03implementacja wydajnego kodu równoległego wykorzystującego możliwości architektury SIMT
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U15potrafi wykorzystywać poznane metody, modele matematyczne oraz symulacje komputerowe do rozwiązywania prostych problemów inżynierskich
I_1A_U19ma umiejętność wyboru algorytmu i struktur danych do rozwiązania określonego zadania inżynierskiego
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U08potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
T1A_U09potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
T1A_U13potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U01potrafi planować i przeprowadzać eksperymenty, w tym pomiary i symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski
InzA_U02potrafi wykorzystać do formułowania i rozwiązywania zadań inżynierskich metody analityczne, symulacyjne oraz eksperymentalne
InzA_U05potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić - zwłaszcza w powiązaniu ze studiowanym kierunkiem studiów - istniejące rozwiązania techniczne, w szczególności urządzenia, obiekty, systemy, procesy, usługi
InzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
C-4umiejętność korzystania z narzędzi pakietu CUDA SDK
Treści programoweT-L-3Przetwarzanie obrazów rastrowych w sposób sekwencyjny (CPU) i równoległy (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru i struktury obrazu;
T-L-4Implementacja wybranego zestawu zadań (punktowanych indywidualnie) z wykorzystaniem CUDA C
T-L-5Implementacja rozwiązania zadania obliczeniowego z użyciem interfejsu API sterownika CUDA;
T-L-7Projekt i implementacja programu demo ilustrującego wykorzystanie interfejsu CUDA OpenGL;
Metody nauczaniaM-1wykład problemowy
M-2wykład informacyjny
M-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
3,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
4,0biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
4,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
5,0biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań; umiejętność wiarygodnej ewaluacji wydajności zaimplementowanych rozwiązań
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_U04generowanie grafiki w środowisku SIMT
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U14ma umiejętność tworzenia interfejsów użytkownika oraz wykorzystania różnych sposobów komunikacji z systemami komputerowymi
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_U07potrafi posługiwać się technikami informacyjno-komunikacyjnymi właściwymi do realizacji zadań typowych dla działalności inżynierskiej
T1A_U14potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
T1A_U15potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
T1A_U16potrafi - zgodnie z zadaną specyfikacją - zaprojektować oraz zrealizować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_U06potrafi dokonać identyfikacji i sformułować specyfikację prostych zadań inżynierskich o charakterze praktycznym, charakterystycznych dla studiowanego kierunku studiów
InzA_U07potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania prostego zadania inżynierskiego o charakterze praktycznym, charakterystycznego dla studiowanego kierunku studiów oraz wybrać i zastosować właściwą metodę i narzędzia
InzA_U08potrafi - zgodnie z zadaną specyfikacją - zaprojektować proste urządzenie, obiekt, system lub proces, typowe dla studiowanego kierunku studiów, używając właściwych metod, technik i narzędzi
Cel przedmiotuC-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
Treści programoweT-L-7Projekt i implementacja programu demo ilustrującego wykorzystanie interfejsu CUDA OpenGL;
Metody nauczaniaM-1wykład problemowy
M-2wykład informacyjny
M-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
3,5biegła umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań
4,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
4,5umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań
5,0umiejętnośc posługiwania się udostępnionym kodem w celu jego powtórnego wykorzystania do rozwiązania typowych zadań; biegła umiejętność samodzielnej implementacji algorytmów w środowisku CUDA do rozwiązanie postawionych zadań; umiejętność wiarygodnej ewaluacji wydajności zaimplementowanych rozwiązań
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_K01rozwiązywanie problemów implementacyjnych z użyciem dokumentacji firmowej
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K01rozumie potrzebę uczenia się przez całe życie; potrafi inspirować i organizować proces uczenia się innych osób
T1A_K07ma świadomość roli społecznej absolwenta uczelni technicznej, a zwłaszcza rozumie potrzebę formułowania i przekazywania społeczeństwu, w szczególności poprzez środki masowego przekazu, informacji i opinii dotyczących osiągnięć techniki i innych aspektów działalności inżynierskiej; podejmuje starania, aby przekazać takie informacje i opinie w sposób powszechnie zrozumiały
Cel przedmiotuC-4umiejętność korzystania z narzędzi pakietu CUDA SDK
Treści programoweT-W-1Wprowadzenie do programowania w technologii NVIDIA CUDA: terminologia, rys historyczny, charakterystyka technologii, organizacja pamięci, konwencje API, narzędzia programisty, wątki, dialekt CUDA C
T-W-2Architektura i API (część 1): model architektury CUDA, składnia i semantyka rozszerzeń języka CUDA C, hierarchia wątków, hierarchia pamięci, struktura kodu wynikowego kompilatora NVCC, przegląd podstawowych usług CUDA API
T-W-3Architektura i API (część 2): zarządzanie pamięcią urządzenia CUDA, przykład - mnożenie macierzy, współpraca wielu urządzeń CUDA
T-W-4Architektura i API (część 3): tryby pracy pamięci urządzenia CUDA, mapowanie pamięci, ciąg dalszy prezentacji funkcji API, praca asynchroniczna, strumienie wątków, zdarzenia,
T-W-5Sprzęt i obliczenia: szczegóły implementacji sprzętowej, architektura SIMT, organizowanie współpracy wątków, możliwości architektury w zależności od CC, implementacja arytmetyki zmiennoprzecinkowej, dokładność obliczeń, odwijanie pętli
T-W-6Podstawy programowania na poziomie API sterownika: zaawansowane wykorzystanie kompilatora NVCC, fazy pracy NVCC, poziomy abstrakcji kodu źródłowego, konstrukcja kodu wykorzystującego API sterownika, przykładowy program
T-W-7Język PTX: składnia, typy danych, deklaracje danych skalarnych i tablicowych, konwencje nazewnicze, elementarny pozdbiór listy rozkazów, komunikacja z kodem hosta, kompletny przykład rozwiązania problemu za pomocą języka PTX
T-W-8Grafika: CUDA a OpenGL, rejestracja zasobów, osobliwości API, wybrany podzbiór funkcji, kompletny przykładowy program
Metody nauczaniaM-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
3,5biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
4,0biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
4,5biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; biegłe weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań
5,0biegłe stosowanie wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań; biegłe weryfikowanie przydatności wskazanych fragmentów dokumentacji firmowej do rozwiązywania postawionych zadań;wyszukiwanie informacji nieudostępnionej w inny sposób do rozwiązywania postawionych zadań
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_O/2/7_K02praca grupowa on-site i off-site
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K03ma świadomość odpowiedzialności za wspólnie realizowane zadania
Odniesienie do efektów zdefiniowanych dla obszaru kształceniaT1A_K02ma świadomość ważności i zrozumienie pozatechnicznych aspektów i skutków działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
T1A_K03potrafi współdziałać i pracować w grupie, przyjmując w niej różne role
T1A_K04potrafi odpowiednio określić priorytety służące realizacji określonego przez siebie lub innych zadania
Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraInzA_K01ma świadomość ważności i rozumie pozatechniczne aspekty i skutki działalności inżynierskiej, w tym jej wpływu na środowisko, i związanej z tym odpowiedzialności za podejmowane decyzje
Cel przedmiotuC-2umiejętność użycia języka CUDA C/C++ do celów zrównoleglania obliczeń i konstruowania aplikacji graficznych
Treści programoweT-W-1Wprowadzenie do programowania w technologii NVIDIA CUDA: terminologia, rys historyczny, charakterystyka technologii, organizacja pamięci, konwencje API, narzędzia programisty, wątki, dialekt CUDA C
T-W-2Architektura i API (część 1): model architektury CUDA, składnia i semantyka rozszerzeń języka CUDA C, hierarchia wątków, hierarchia pamięci, struktura kodu wynikowego kompilatora NVCC, przegląd podstawowych usług CUDA API
T-W-3Architektura i API (część 2): zarządzanie pamięcią urządzenia CUDA, przykład - mnożenie macierzy, współpraca wielu urządzeń CUDA
T-W-4Architektura i API (część 3): tryby pracy pamięci urządzenia CUDA, mapowanie pamięci, ciąg dalszy prezentacji funkcji API, praca asynchroniczna, strumienie wątków, zdarzenia,
T-W-5Sprzęt i obliczenia: szczegóły implementacji sprzętowej, architektura SIMT, organizowanie współpracy wątków, możliwości architektury w zależności od CC, implementacja arytmetyki zmiennoprzecinkowej, dokładność obliczeń, odwijanie pętli
T-W-6Podstawy programowania na poziomie API sterownika: zaawansowane wykorzystanie kompilatora NVCC, fazy pracy NVCC, poziomy abstrakcji kodu źródłowego, konstrukcja kodu wykorzystującego API sterownika, przykładowy program
T-W-7Język PTX: składnia, typy danych, deklaracje danych skalarnych i tablicowych, konwencje nazewnicze, elementarny pozdbiór listy rozkazów, komunikacja z kodem hosta, kompletny przykład rozwiązania problemu za pomocą języka PTX
T-W-8Grafika: CUDA a OpenGL, rejestracja zasobów, osobliwości API, wybrany podzbiór funkcji, kompletny przykładowy program
T-L-2Implementacja wybranego algorytmu w formie sekwencyjnej (CPU) i równoległej (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru zagadnienia obliczeniowego
T-L-3Przetwarzanie obrazów rastrowych w sposób sekwencyjny (CPU) i równoległy (GPU); Badania wydajności obu rozwiązań w zależności od rozmiaru i struktury obrazu;
T-L-4Implementacja wybranego zestawu zadań (punktowanych indywidualnie) z wykorzystaniem CUDA C
T-L-5Implementacja rozwiązania zadania obliczeniowego z użyciem interfejsu API sterownika CUDA;
T-L-6Implementacja rozwiązania zadania obliczeniowego z użyciem języka PTX;
T-L-7Projekt i implementacja programu demo ilustrującego wykorzystanie interfejsu CUDA OpenGL;
Metody nauczaniaM-3ćwiczenia laboratoryjne (praca on-site)
M-4ćwiczenia laboratoryjne (praca off-site)
Sposób ocenyS-1Ocena formująca: ocena zgodności wykonanych zadań laboratoryjnych ze specyfikacją wymagań
S-2Ocena formująca: ocena poprawności implementacji na podstawie wyników testów akceptacyjnych
Kryteria ocenyOcenaKryterium oceny
2,0niespełnienie kryteriów uzyskania oceny 3,0
3,0wykazywanie aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu
3,5wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu
4,0wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie aktywnej postawy przy implementacji rozwiązania postawionego problemu
4,5wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie wyróżniającej aktywnej postawy przy implementacji rozwiązania postawionego problemu
5,0wykazywanie wyróżniejącej aktywnej postawy przy analizie i projektowaniu rozwiązania postawionego problemu; wykazywanie wyróżniającej aktywnej postawy przy implementacji rozwiązania postawionego problemu;wykazywanie aktywnej postawy przy testowaniu i badaniu wydajności rozwiązania postawionego problemu