Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N1)

Sylabus przedmiotu Akceleracja obliczeń:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne 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 18 2,00,50zaliczenie
wykładyW7 18 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 środowisku oraz dobór wektorowych typów danych w celu przyspieszenia obliczeń2
T-L-4Filtracja oraz synteza obrazów z wykorzystaniem OpenCL C2
T-L-5Wprowadzenie do Vivado HLS oraz tworzenie akceleratorów sprzętowych w Vivado HLS2
T-L-6Wykorzystanie bibliotek Vivado HLS C2
T-L-7Zastosowanie AMBA AXI w akceleratorach sprzętowych2
T-L-8Wykorzystanie OpenCV w Vivado HLS2
T-L-9Zaliczenie laboratorium2
18
wykłady
T-W-1Wprowadzenie do akceleracji sprzętowej1
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ęci1
T-W-5OpenCL C2
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS2
T-W-7Biblioteki Vivado HLS C2
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)1
T-W-9Wykorzystanie OpenCL w Vivado HLS2
T-W-10Biblioteka OpenCV1
T-W-11Zastosowanie OpenCV w Vivado HLS1
T-W-12Zaliczenie wykładu1
18

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

KODForma aktywnościGodziny
laboratoria
A-L-1Przygotowanie do zajęć30
A-L-2uczestnictwo w zajęciach18
A-L-3Udział w zaliczeniu i konsultacjach2
50
wykłady
A-W-1Przygotowanie do zajęć30
A-W-2uczestnictwo w zajęciach18
A-W-3Udział w zaliczeniu i 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-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11M-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-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8M-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 podstawowe zagadnienia związane z projektowaniem akceleratorów w HLS, w tym magistralę AXI Lite.
3,5jak na ocenę 3,0 oraz zna oraz podstawy OpenCL.
4,0jak na ocenę 3,5 oraz zna funkcje biblioteki Vivado HLS C.
4,5jak na ocenę 4,0 oraz zna podstawy Full AXI.
5,0jak na ocenę 4,5 oraz zna podstawy SystemC.

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 środowisku oraz dobór wektorowych typów danych w celu przyspieszenia obliczeń2
T-L-4Filtracja oraz synteza obrazów z wykorzystaniem OpenCL C2
T-L-5Wprowadzenie do Vivado HLS oraz tworzenie akceleratorów sprzętowych w Vivado HLS2
T-L-6Wykorzystanie bibliotek Vivado HLS C2
T-L-7Zastosowanie AMBA AXI w akceleratorach sprzętowych2
T-L-8Wykorzystanie OpenCV w Vivado HLS2
T-L-9Zaliczenie laboratorium2
18

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie do akceleracji sprzętowej1
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ęci1
T-W-5OpenCL C2
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS2
T-W-7Biblioteki Vivado HLS C2
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)1
T-W-9Wykorzystanie OpenCL w Vivado HLS2
T-W-10Biblioteka OpenCV1
T-W-11Zastosowanie OpenCV w Vivado HLS1
T-W-12Zaliczenie wykładu1
18

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Przygotowanie do zajęć30
A-L-2uczestnictwo w zajęciach18
A-L-3Udział w zaliczeniu i konsultacjach2
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ęć30
A-W-2uczestnictwo w zajęciach18
A-W-3Udział w zaliczeniu i 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-1Wprowadzenie do akceleracji sprzętowej
T-W-2Architektura GPU na przykładzie Nvidia
T-W-3CUDA – model programowania i model pamięci
T-W-4OpenCL – model platformy, model wykonawczy i model pamięci
T-W-5OpenCL C
T-W-6Tworzenia akceleratorów sprzętowych w Vivado HLS
T-W-7Biblioteki Vivado HLS C
T-W-8Standard ARM Advanced Microcontroller Bus Architecture (AMBA)
T-W-9Wykorzystanie OpenCL w Vivado HLS
T-W-10Biblioteka OpenCV
T-W-11Zastosowanie OpenCV w Vivado HLS
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 podstawowe zagadnienia związane z projektowaniem akceleratorów w HLS, w tym magistralę AXI Lite.
3,5jak na ocenę 3,0 oraz zna oraz podstawy OpenCL.
4,0jak na ocenę 3,5 oraz zna funkcje biblioteki Vivado HLS C.
4,5jak na ocenę 4,0 oraz zna podstawy Full AXI.
5,0jak na ocenę 4,5 oraz zna podstawy SystemC.
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-1Zapoznanie się z budowaniem środowiska dla tworzenia aplikacji w OpenCL C na przykładzie dodawania wektorów
T-L-2Mnożenie macierzy w C/C++ i OpenCL C
T-L-3Pomiar czasu wykonania programu w heterogenicznym środowisku oraz dobór wektorowych typów danych w celu przyspieszenia obliczeń
T-L-4Filtracja oraz synteza obrazów z wykorzystaniem OpenCL C
T-L-5Wprowadzenie do Vivado HLS oraz tworzenie akceleratorów sprzętowych w Vivado HLS
T-L-6Wykorzystanie bibliotek Vivado HLS C
T-L-7Zastosowanie AMBA AXI w akceleratorach sprzętowych
T-L-8Wykorzystanie OpenCV w Vivado HLS
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