Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)
specjalność: Inżynieria komputerowa

Sylabus przedmiotu Akceleracja obliczeń:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Akceleracja obliczeń
Specjalność Inżynieria komputerowa
Jednostka prowadząca Katedra Architektury Komputerów i Telekomunikacji
Nauczyciel odpowiedzialny Piotr Dziurzański <Piotr.Dziurzanski@zut.edu.pl>
Inni nauczyciele Magdalena Szaber-Cybularczyk <Magdalena.Szaber@zut.edu.pl>, Mirosław Łazoryszczak <Miroslaw.Lazoryszczak@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 5 Grupa obieralna 1

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL7 30 2,00,50zaliczenie
wykładyW7 30 2,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Znajomość podstaw technik cyfowych
W-2Znajomość podstaw dowolnego języka opisu sprzętu
W-3Umiejętność programowania w języku C++

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Nabycie umiejętności sprzętowej akceleracji obliczeń

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

KODTreść programowaGodziny
laboratoria
T-L-1Zapoznanie się z budowaniem środowiska dla tworzenia aplikacji w OpenCL C na przykładzie dodawania wektorów2
T-L-2Mnożenie macierzy w C/C++ i OpenCL C2
T-L-3Pomiar czasu wykonania programu w heterogenicznym środowisku2
T-L-4Dobór wektorowych typów danych w celu przyspieszenia obliczeń2
T-L-5Filtracja obrazów z wykorzystaniem OpenCL C2
T-L-6Synteza obrazów z wykorzystaniem OpenCL C4
T-L-7Wprowadzenie do Vivado HLS2
T-L-8Tworzenie akceleratorów sprzętowych w Vivado HLS2
T-L-9Wykorzystanie bibliotek Vivado HLS C2
T-L-10Zastosowanie AMBA AXI w akceleratorach sprzętowych4
T-L-11Wykorzystanie OpenCV w Vivado HLS4
T-L-12Zaliczenie laboratorium2
30
wykłady
T-W-1Wprowadzenie do akceleracji sprzętowej2
T-W-2Architektura GPU na przykładzie Nvidia2
T-W-3CUDA – model programowania i model pamięci2
T-W-4OpenCL – model platformy, model wykonawczy i model pamięci2
T-W-5OpenCL C4
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS4
T-W-7Biblioteki Vivado HLS C3
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)2
T-W-9Wykorzystanie OpenCL w Vivado HLS2
T-W-10Biblioteka OpenCV3
T-W-11Zastosowanie OpenCV w Vivado HLS2
T-W-12Zaliczenie wykładu2
30

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

KODForma aktywnościGodziny
laboratoria
A-L-1Przygotowanie do zajęć20
A-L-2uczestnictwo w zajęciach30
50
wykłady
A-W-1Przygotowanie do zajęć18
A-W-2uczestnictwo w zajęciach30
A-W-3Udział w konsultacjach2
50

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny
M-2Wykład problemowy
M-3Metoda przypadków
M-4Ćwiczenia laboratoryjne

Sposoby oceny

KODSposób oceny
S-1Ocena podsumowująca: Ocena podsumowująca: Kolokwium
S-2Ocena podsumowująca: Ocena podsumowująca: Obrona napisanych programów

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D01.11.2_W01
Student zna podstawowe techniki tworzenia akceleratorów sprzętowych z wykorzystaniem układów GPU oraz FPGA
I_1A_W04, I_1A_W02C-1T-W-10, T-W-1, T-W-2, T-W-8, T-W-6, T-W-5, T-W-7, T-W-4, T-W-9, T-W-11, T-W-3M-1, M-2, M-3S-1

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_D01.11.2_U01
Student potrafi projektować akceleratory sprzętowe z wykorzystaniem układów GPU oraz FPGA
I_1A_U02, I_1A_U06C-1T-L-8, T-L-2, T-L-4, T-L-3, T-L-1, T-L-11, T-L-5, T-L-6, T-L-7, T-L-10, T-L-9M-3, M-4S-2

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_1A_D01.11.2_W01
Student zna podstawowe techniki tworzenia akceleratorów sprzętowych z wykorzystaniem układów GPU oraz FPGA
2,0nie spełnia wymogów na ocenę 3,0
3,0zna architekturę GPU oraz model programowania CUDA
3,5ak na ocenę 3,0 oraz zna podstawy OpenCL
4,0jak na ocenę 3,5 oraz rozumie zasady tworzenia akceleratorów sprzętowych w Vivado HLS z wykorzystaniem AXI
4,5jak na ocenę 4,0 oraz zna funkcje Vivado HLS C
5,0jak na ocenę 4,5 oraz zna podstawy OpenCV

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
I_1A_D01.11.2_U01
Student potrafi projektować akceleratory sprzętowe z wykorzystaniem układów GPU oraz FPGA
2,0nie spełnia wymogów na ocenę 3,0
3,0potrafi napisać prosty program z wykorzystaniem model programowania CUDA
3,5jak na ocenę 3,0 oraz potrafi napisać prosty program z wykorzystaniem OpenCL
4,0jak na ocenę 3,5 oraz potrafi utworzyć prosty multimedialny system sprzętowo-programowy w Vivado HLS z wykorzystaniem AXI
4,5jak na ocenę 4,0 oraz potrafi wykorzystywać funkcje Vivado HLS C
5,0jak na ocenę 4,5 oraz potrafi korzystać z OpenCV w Vivado HLS

Literatura podstawowa

  1. David R. Kaeli et al., Heterogeneous Computing with OpenCL 2.0, Morgan Kaufmann, 2015
  2. Xilinx Inc., Vivado Design Suite User Guide: High-Level Synthesis, 2014
  3. Adrian Kaehler,‎ Gary Bradski, Learning OpenCV 3: Computer Vision in C++ with the OpenCV Library, O'Reilly Media, 2016

Literatura dodatkowa

  1. Sanjay Churiwala (Editor), Designing with Xilinx® FPGAs: Using Vivado, Springer, 2016
  2. J. Bhasker, A SystemC Primer, Second Edition, Star Galaxy Publishing, 2010
  3. Hasitha Muthumala Waidyasooriya,‎ Masanori Hariyama,‎ Kunio Uchiyama, Design of FPGA-Based Computing Systems with OpenCL, Springer, 2017

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Zapoznanie się z budowaniem środowiska dla tworzenia aplikacji w OpenCL C na przykładzie dodawania wektorów2
T-L-2Mnożenie macierzy w C/C++ i OpenCL C2
T-L-3Pomiar czasu wykonania programu w heterogenicznym środowisku2
T-L-4Dobór wektorowych typów danych w celu przyspieszenia obliczeń2
T-L-5Filtracja obrazów z wykorzystaniem OpenCL C2
T-L-6Synteza obrazów z wykorzystaniem OpenCL C4
T-L-7Wprowadzenie do Vivado HLS2
T-L-8Tworzenie akceleratorów sprzętowych w Vivado HLS2
T-L-9Wykorzystanie bibliotek Vivado HLS C2
T-L-10Zastosowanie AMBA AXI w akceleratorach sprzętowych4
T-L-11Wykorzystanie OpenCV w Vivado HLS4
T-L-12Zaliczenie laboratorium2
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie do akceleracji sprzętowej2
T-W-2Architektura GPU na przykładzie Nvidia2
T-W-3CUDA – model programowania i model pamięci2
T-W-4OpenCL – model platformy, model wykonawczy i model pamięci2
T-W-5OpenCL C4
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS4
T-W-7Biblioteki Vivado HLS C3
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)2
T-W-9Wykorzystanie OpenCL w Vivado HLS2
T-W-10Biblioteka OpenCV3
T-W-11Zastosowanie OpenCV w Vivado HLS2
T-W-12Zaliczenie wykładu2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Przygotowanie do zajęć20
A-L-2uczestnictwo w zajęciach30
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Przygotowanie do zajęć18
A-W-2uczestnictwo w zajęciach30
A-W-3Udział w konsultacjach2
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D01.11.2_W01Student zna podstawowe techniki tworzenia akceleratorów sprzętowych z wykorzystaniem układów GPU oraz FPGA
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
I_1A_W02Posiada wiedzę w zakresie projektowania, analizy i implementacji algorytmów, struktur danych oraz konstrukcji programistycznych, zna podstawowe problemy algorytmiczne występujące w obszarze informatyki.
Cel przedmiotuC-1Nabycie umiejętności sprzętowej akceleracji obliczeń
Treści programoweT-W-10Biblioteka OpenCV
T-W-1Wprowadzenie do akceleracji sprzętowej
T-W-2Architektura GPU na przykładzie Nvidia
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS
T-W-5OpenCL C
T-W-7Biblioteki Vivado HLS C
T-W-4OpenCL – model platformy, model wykonawczy i model pamięci
T-W-9Wykorzystanie OpenCL w Vivado HLS
T-W-11Zastosowanie OpenCV w Vivado HLS
T-W-3CUDA – model programowania i model pamięci
Metody nauczaniaM-1Wykład informacyjny
M-2Wykład problemowy
M-3Metoda przypadków
Sposób ocenyS-1Ocena podsumowująca: Ocena podsumowująca: Kolokwium
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia wymogów na ocenę 3,0
3,0zna architekturę GPU oraz model programowania CUDA
3,5ak na ocenę 3,0 oraz zna podstawy OpenCL
4,0jak na ocenę 3,5 oraz rozumie zasady tworzenia akceleratorów sprzętowych w Vivado HLS z wykorzystaniem AXI
4,5jak na ocenę 4,0 oraz zna funkcje Vivado HLS C
5,0jak na ocenę 4,5 oraz zna podstawy OpenCV
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_1A_D01.11.2_U01Student potrafi projektować akceleratory sprzętowe z wykorzystaniem układów GPU oraz FPGA
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U02Potrafi zaplanować i zrealizować eksperymenty w zakresie oceny wydajności, złożoności, efektywności systemów informatycznych i ich składowych.
I_1A_U06Potrafi rozwiązywać podstawowe problemy algorytmiczne z uwzględnieniem ich złożoności posługując się kluczowymi językami programowania.
Cel przedmiotuC-1Nabycie umiejętności sprzętowej akceleracji obliczeń
Treści programoweT-L-8Tworzenie akceleratorów sprzętowych w Vivado HLS
T-L-2Mnożenie macierzy w C/C++ i OpenCL C
T-L-4Dobór wektorowych typów danych w celu przyspieszenia obliczeń
T-L-3Pomiar czasu wykonania programu w heterogenicznym środowisku
T-L-1Zapoznanie się z budowaniem środowiska dla tworzenia aplikacji w OpenCL C na przykładzie dodawania wektorów
T-L-11Wykorzystanie OpenCV w Vivado HLS
T-L-5Filtracja obrazów z wykorzystaniem OpenCL C
T-L-6Synteza obrazów z wykorzystaniem OpenCL C
T-L-7Wprowadzenie do Vivado HLS
T-L-10Zastosowanie AMBA AXI w akceleratorach sprzętowych
T-L-9Wykorzystanie bibliotek Vivado HLS C
Metody nauczaniaM-3Metoda przypadków
M-4Ćwiczenia laboratoryjne
Sposób ocenyS-2Ocena podsumowująca: Ocena podsumowująca: Obrona napisanych programów
Kryteria ocenyOcenaKryterium oceny
2,0nie spełnia wymogów na ocenę 3,0
3,0potrafi napisać prosty program z wykorzystaniem model programowania CUDA
3,5jak na ocenę 3,0 oraz potrafi napisać prosty program z wykorzystaniem OpenCL
4,0jak na ocenę 3,5 oraz potrafi utworzyć prosty multimedialny system sprzętowo-programowy w Vivado HLS z wykorzystaniem AXI
4,5jak na ocenę 4,0 oraz potrafi wykorzystywać funkcje Vivado HLS C
5,0jak na ocenę 4,5 oraz potrafi korzystać z OpenCV w Vivado HLS