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)