PROCESORY GRAFICZNE NVIDIA I ATI/AMD

Transkrypt

PROCESORY GRAFICZNE NVIDIA I ATI/AMD
Z1-PU7
WYDANIE N1
Strona 1 z 3
KARTA PRZEDMIOTU
(pieczęć wydziału)
1. Nazwa przedmiotu: PROCESORY GRAFICZNE NVIDIA I ATI/AMD: 2. Kod przedmiotu: PGNiA
ARCHITEKTURA I PROGRAMOWANIE
3. Karta przedmiotu ważna od roku akademickiego: 2012/2013
4. Forma kształcenia: studia pierwszego stopnia
5. Forma studiów: studia stacjonarne
6. Kierunek studiów: ELEKTRONIKA I TELEKOMUNIKACJA (WYDZIAŁ AEiI)
7. Profil studiów: ogólnoakademicki
8. Specjalność:
9. Semestr: 2
10. Jednostka prowadząca przedmiot: Instytut Elektroniki, RAu3
11. Prowadzący przedmiot: dr inż. Tomasz Topa, dr inż. Artur Noga
12. Przynależność do grupy przedmiotów: przedmioty wspólne
13. Status przedmiotu: wybieralny
14. Język prowadzenia zajęć: polski
15. Przedmioty wprowadzające oraz wymagania wstępne: Zakłada się, że przed rozpoczęciem nauki
niniejszego przedmiotu student posiada podstawową wiedzę z zakresu programowania oraz architektury
systemów mikrokomputerowych.
16. Cel przedmiotu: Celem wykładu jest zapoznanie studentów z współczesnymi procesorami graficznymi CUDA Core NVIDIA i FireStream ATI/AMD, ich architekturą i sposobem programowania.
17. Efekty kształcenia:1
Nr
W1
W2
U1
U2
U3
1
Opis efektu kształcenia
Ma podstawową i uporządkowaną wiedzę w zakresie
algorytmów wykorzystywanych w grafice komputerowej i aplikacjach multimedialnych
Ma wiedzę o trendach rozwojowych i najistotniejszych nowych osiągnięciach w zakresie elektroniki i
informatyki
Potrafi właściwie przeprowadzić proces konfiguracji
środowiska programistycznego CUDA
Zna elementy składowe języka CUDA C, języka
OpenCL oraz języka Cg
Potrafi wyjaśnić zasadę działania i tworzenia algorytmów przewidzianych do realizacji na platformach
heterogenicznych CPU/GPU
należy wskazać ok. 5 – 8 efektów kształcenia
Metoda sprawdzenia
efektu kształcenia
Forma prowadzenia zajęć
kolokwium
wykład
K2_W09
kolokwium
wykład
K2_W11
Wykonanie ćwiczeń
laboratoryjnych
Wykonanie ćwiczeń
laboratoryjnych
Wykonanie ćwiczeń
laboratoryjnych
laboratorium
laboratorium
laboratorium
Odniesienie
do efektów
dla kierunku
studiów
Z1-PU7
U4
Zna możliwości i ograniczenia sprzętowe architektu- Wykonanie ćwiczeń
ry masowo-równoległej dzięki czemu potrafi dobrać laboratoryjnych
odpowiedni wzorzec projektowy dla efektywnej
implementacji danego algorytmu
18. Formy zajęć dydaktycznych i ich wymiar (liczba godzin)
WYDANIE N1
Strona 2 z 3
laboratorium
W. : 15 L.: 15
19. Treści kształcenia:
Wykład
1. Wprowadzenie do grafiki 3D. Układy współrzędnych, rzuty, światło i cienie. Transformacje współrzędnych, prymitywy graficzne.
2. Silniki graficzne OpenGl i DirectX. Modelowanie i kompozycja obiektów 3D, grafika rastrowa, mapowanie tekstur, bufory, grafika interaktywna, efekty specjalne.
3. Środowisko programistyczne Cg. Składnia Cg i słowa kluczowe. Interpolacja ujęć kluczowych
i system kości. Mapowanie środowiska i nierówności. Efekty specjalne. Sposoby zwiększania wydajności przetwarzania grafiki.
4. Technologia CUDA NVIDIA. Omówienie architektury G80, G92, GT200 oraz architektury Fermi
(GF110). Wprowadzenie pojęcia procesora strumieniowego i multiprocesora strumieniowego, klaster
i macierz procesorów strumieniowych. Jednostki teksturowania. Jednostki arytmetyczno-logiczne,
jednostki specjalne i sterujące. Rozdzielacz wątków i klaster przetwarzania wątków. Pamięć podręczna pierwszego, drugiego i trzeciego poziomu, pamięć instrukcji, pamięć lokalna, pamięć współdzielona, pamięć tekstur, pamięć globalna, pamięć stałych, rejestry.
5. Technologia FireStream ATI/AMD. Omówienie architektury Tera Scale Engine, Wprowadzenie pojęcia zunifikowanych jednostek cieniujących i klastrów obliczeniowych. Jednostki teksturowania. Jednostki arytmetyczno-logiczne, jednostki specjalne i sterujące. Rozdzielacz wątków. Pamięć podręczna, pamięć lokalna, rejestry.
6. Model programowania. Podział na kraty i bloki wątków. Wiązka wątków. Synchronizacja wątków.
Programowanie współbieżne z wykorzystaniem strumieni. Synchronizacja strumieni. Kod jądra.
7. Język OpenCL (ang. Open Computing Language). Składnia języka. Wywołanie kernala. Funkcje atomowe. Instrukcje podwójne. Instrukcje synchronizacji. Optymalizacja kodu. Optymalizacja wydajności aplikacji. Instalacja i konfiguracja kompilatora.
8. Język Fortran. Składnia języka. Wywołanie Kornela. Funkcje atomowe. Instrukcje podwójne . Instrukcje synchronizacji. Optymalizacja kodu. Optymalizacja wydajności aplikacji. Instalacja
i konfiguracja kompilatora.
9. Platforma programistyczna i narzędzia diagnostyczne. Zintegrowane środowisko programistyczne
Microsoft Visual Studio, Narzędzie diagnostyczne NVIDIA Parallel Nsight.
10. Przykłady praktycznych aplikacji. Mnożenie macierzy, rozwiązywanie układu równań, rozpoznawanie i przetwarzanie obrazów, chemia molekularna, elektrodynamika obliczeniowa, kryptografia.
Zajęcia laboratoryjne
1.
2.
3.
4.
5.
6.
7.
8.
Instalacja i konfiguracja środowiska programistycznego CUDA
Obsługa operacji wejścia-wyjścia
Obsługa pamięci graficznej
Implementacja funkcji jądra
Optymalizacja funkcji jądra
Operacje atomowe
Przetwarzanie potokowe - współbieżne wykonywanie funkcji jądra i transferu danych
Konteksty
9. Metody i narzędzia diagnostyczne (debugging, profiling)
20. Egzamin: nie
Z1-PU7
WYDANIE N1
Strona 3 z 3
21. Literatura podstawowa:
1. J. Sanders, E. Kandrot, CUDA by example. An introduction to General-Purpose GPU Programming,
Addison-Wesley Press, New York, 2010
2. D. Kirk, W. Hwu, Programming Massively Parallel Processors: A Hands-on Approach, Morgan
Kaufmann Press, 2010
3. B. Chapman, F. Desprez, G.R. Joubert, A. Lichnewsky, F. Peters, T. Priol, Parallel Computing: From
Multicores and GPU's to Petascale, IOS Press, 2010
4. A. Karbowski, E. Niewiadomska-Szynkiewicz, Programowanie równoległe i rozproszone, Oficyna
Wydawnicza Politechniki Warszawskiej, 2009
5. R. Farber, CUDA Application Design and Development, Elsevier, 2011
6. NVIDIA, Compute Unified Device Architecture Programming Guide, Version 4.0, 06/05/2011
22. Literatura uzupełniająca:
1. Wen-mei W. Hwu, GPU Computing Gems, Elsevier, 2011
2. R. Fernando, M. J. Kilgard, The Cg Tutorial: The Definitive Guide to Programmable Real-Time
Graphics, NVIDIA corporation Press, 2003
3. R. S. Wright, N. Heamel, G. Sellers, B. Lipchak, OpenGL SuperBible, Comprehensive Tutorial and
Reference, 5th edition, Addison-Wesley Press, New York, 2011
4. R. S. Wright, M. Sweet, OpenGL. Księga eksperta, Helion 1999
5. NVIDIA Corporation. OpenCL. Programming guide for the CUDA Architecture, v2.3, Feb. 2010
23. Nakład pracy studenta potrzebny do osiągnięcia efektów kształcenia
Lp.
Forma zajęć
Liczba godzin
kontaktowych / pracy studenta
15/5
1
Wykład
2
Ćwiczenia
3
Laboratorium
4
Projekt
0/0
5
Seminarium
0/0
6
Inne
5/5
0/0
15/15
Suma godzin
35/25
24. Suma wszystkich godzin: 60
25. Liczba punktów ECTS: 2
26. Liczba punktów ECTS uzyskanych na zajęciach z bezpośrednim udziałem nauczyciela akademickiego: 1
27. Liczba punktów ECTS uzyskanych na zajęciach o charakterze praktycznym (laboratoria, projekty): 1
26. Uwagi:
Zatwierdzono:
…………………………….
…………………………………………………
(data i podpis prowadzącego)
(data i podpis dyrektora instytutu/kierownika katedry/
Dyrektora Kolegium Języków Obcych/kierownika lub
dyrektora jednostki międzywydziałowej)

Podobne dokumenty