Onion Information
Paralelno programiranje na heterogenim sustavima - GASERI
Hardverska arhitektura heterogenih sustava. Platforme, uređaji i konteksti. Prijenos podataka između memorije različitih uređaja. Događaji, obavijesti i sinkronizacija. Analiza peformansi koda i otklanjanje grešaka u kodu. Modeli konkuretno...
Onion Details
Page Clicks: 1
First Seen: 03/15/2024
Last Indexed: 10/23/2024
Onion Content
Preskoči na sadržaj SVEUČILIŠTE U RIJECI ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska godina 2020./2021. PARALELNO PROGRAMIRANJE NA HETEROGENIM SUSTAVIMA Studij: Preddiplomski studij informatike Godina i semestar: 3. godina, 5. semestar Web stranice predmeta: lab.miletic.net/hr/nastava/kolegiji/PPHS/ moodle.srce.hr/2020-2021/ ECTS bodovi: 5 Nastavno opterećenje: 2 + 2 Nositelj predmeta: izv. prof. dr. sc. Božidar Kovačić E-mail: bkovacic@inf.uniri.hr Web stranica: portal.uniri.hr/Portfelj/1506 Ured: Ulica Radmile Matejčić 2, O-414 Vrijeme konzultacija: utorkom od 10 do 12 sati ili po dogovoru e-mailom Asistent: v. pred. dr. sc. Vedran Miletić E-mail: vmiletic@inf.uniri.hr Web stranica: vedran.miletic.net Ured: Ulica Radmile Matejčić 2, O-520 Vrijeme konzultacija: utorkom od 12 do 14 sati ili po dogovoru e-mailom Razvijanje općih i specifičnih kompetencija (znanja i vještina) usvajanje temeljnih znanja o načinu rada grafičkog procesora kod izvođenja računskih operacija opće namjene usvajanje tehnika paralelnog programiranja na heterogenim sustavima, što se intenzivno primjenjuje kod proračuna u prirodnim i tehničkim znanostima, obradi slika u medicini, baratanju digitalnim multimedijskim sadržajem i drugdje Korespodentnost i korelativnost programa Preduvjet za upis predmeta Paralelno programiranje na heterogenim sustavima je položen ispit iz predmeta Operacijski sustavi 2 . Pored navedenog, ovaj predmet tematski i problemski nasljeđuje i predmet Algoritmi i strukture podataka , a pojedinim temama prethodi predmetu Računalna grafika . Predmet je povezan i s predmetom Numerička matematika . Okvirni sadržaj predmeta Osnovne ideje višejezgrenosti, paralelnog programiranja i primjeri primjene. Programski jezici za paralelno programiranje na heterogenim sustavima. Osnovne programske strukture, tipovi podataka, operatori i funkcije. Hardverska arhitektura heterogenih sustava. Platforme, uređaji i konteksti. Prijenos podataka između memorije različitih uređaja. Događaji, obavijesti i sinkronizacija. Analiza peformansi koda i otklanjanje grešaka u kodu. Modeli konkuretnosti i izvođenja programskih naredbi. Obrada slika. Implementacija programskog jezika za paralelno programiranje na osnovnim i grafičkim procesorima. Studijski slučajevi stvarnih algoritama: redukcija i sortiranje, algoritmi na matricama, obrada slika, konvolucija, obrada videa, histogram, simulacija višečestičnih sustava, generiranje slučajnih brojeva, kriptoalgoritmi. Implementiranje vlastitih algoritama. Ekstenzije programskih jezika za paralelno programiranje. Mogućnosti primjene heterogenog računanja na webu. Mogućnosti primjene u ubrzanju prikaza računalne grafike. Oblici provođenja nastave i način provjere znanja Predavanja, vježbe, samostalni zadaci, konzultacije. Popis literature potrebne za studij i polaganje ispita Hwu, W. Heterogeneous system architecture: a new compute platform infrastructure. (Elsevier, 2015). Kirk, D. B. & Hwu, W. W. Programming Massively Parallel Processors: A Hands-on Approach. (Elsevier, 2016). ROCm documentation. (AMD, 2020). Dostupno na: rocmdocs.amd.com CUDA C Programming Guide. (NVIDIA, 2020). Dostupno na: docs.nvidia.com/cuda/cuda-c-programming-guide/ Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju. Popis literature koja se preporučuje kao dopunska Kaeli, D. R., Mistry, P., Schaa, D. & Zhang, D. P. Heterogeneous Computing with OpenCL 2.0. (Elsevier/Morgan Kaufmann, 2015). OpenCL Overview. (Khronos Group, 2017). Dostupno na: www.khronos.org/opencl/ Advanced Micro Devices. "RDNA 1.0" Instruction Set Architecture, Reference Guide. (AMD Developer Central, 2019). Dostupno na: gpuopen.com/wp-content/uploads/2019/08/RDNA_Shader_ISA_7July2019.pdf Advanced Micro Devices. "Vega" Instruction Set Architecture, Reference Guide. (AMD Developer Central, 2017). Dostupno na: developer.amd.com/wordpress/media/2017/08/Vega_Shader_ISA_28July2017.pdf Advanced Micro Devices. OpenCL Programming Guide, Revision 2.7. (AMD Developer Central, 2013). Dostupno na: developer.amd.com/wordpress/media/2013/07/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide-rev-2.7.pdf Advanced Micro Devices. OpenCL Optimization Guide. (AMD Developer Central, 2015). Dostupno na: developer.amd.com/wordpress/media/2013/12/AMD_OpenCL_Programming_Optimization_Guide2.pdf Advanced Micro Devices. OpenCL User Guide. (AMD Developer Central, 2015). Dostupno na: developer.amd.com/wordpress/media/2013/12/AMD_OpenCL_Programming_User_Guide2.pdf LLVM documentation. Dostupno na: llvm.org/docs/ Način praćenja kvalitete i uspješnosti izvedbe predmeta Kroz ustrojeni sustav osiguranja kvalitete Odjela za informatiku. Mogućnost izvođenja na stranom jeziku Ima (engleski). R. BR. OČEKIVANI ISHODI 1. objasniti vezu višejezgrenosti i paralelnog programiranja 2. navesti primjere paralelnih algoritama i često korištenih programskih struktura 3. objasniti pojam heterogenog sustava 4. opisati hardversku arhitekturu heterogenih sustava i njezinu softversku reprezentaciju 5. navesti razlike u načinu rada osnovnih i grafičkih procesora 6. objasniti pojam paralelizabilnosti algoritma i prepoznati to svojstvo kod konkretnih algoritama 7. implementirati jednostavnije paralelne algoritme i strukture podataka 8. primijeniti stečena znanja kod implementacije paralelnih algoritama za rješavanje stvarnih problema AKTIVNOSTI I OCJENJIVANJE STUDENATA VRSTA AKTIVNOSTI ECTS ISHODI UČENJA SPECIFIČNA AKTIVNOST METODA PROCJENJIVANJA BODOVI MAX. Pohađanje nastave 1--8 Prisutnost studenata Popisivanje (evidencija) 0 Pisani ispit 1--6 Dva kolokvija 0--20 bodova za svaki kolokvij, ovisno o stupnju točnosti i potpunosti 40 Kontinuirana provjera znanja 1 7--8 Dvije kontrolne zadaće 0--15 bodova za svaku kontrolnu zadaću, ovisno o stupnju točnosti i potpunosti 30 Završni ispit 2 7--8 Dizajn, implementacija i prezentacija heterogenog paralelnog algoritma 30 bodova prema definiranim kriterijima 30 UKUPNO 5 100 Obveze i vrednovanje studenata Pohađanje nastave Nastava se odvija prema mješovitom modelu u kombinaciji klasične nastave u učionici i online nastave uz pomoć sustava za e-učenje Merlin ( moodle.srce.hr/2020-2021/ ). Pisani ispit Tijekom semestra pisat će se dva kolokvija koji će uključivati pitanja iz gradiva predavanja i na svakom od njih student će moći skupiti maksimalno 20 bodova. Kontinuirana provjera znanja Tijekom semestra pisat će se dvije kontrolne zadaće koje će uključivati praktične zadatke iz gradiva vježbi i na svakom od njih student će moći skupiti maksimalno 15 bodova. Završni ispit Tijekom semestra studenti će u grupama po dvoje ili troje odabrati projekt koji će izraditi i predati neposredno prije ispitnog roka, a zatim na završnom ispitu obraniti usmenim putem. Projekt se sastoji se od izrade programskog koda koji rješava određeni problem korištenjem heterogenog paralelnog algoritma i pripadne dokumentacije. Vrednovat će se točnost i potpunost predanog programskog koda i pripadne dokumentacije te opis načina rješavanja danog problema. Da bi student mogao pristupiti usmenoj obrani projekta, mora barem jednom doći na konzultacije s djelomično izrađenim projektom. Ocjena iz kolegija Kontinuirani rad i završni ispit Kontinuiranim radom tijekom semestra na prethodno opisani način studenti mogu ostvariti najviše 70 ocjenskih bodova, a da bi mogli pristupiti završnom ispitu moraju ostvarili 50% i više bodova (minimalno 35). Studenti koji su skupili najmanje 35 ocjenskih bodova, mogu pristupiti završnom ispitu. Završni ispit nosi udio od maksimalno 30 ocjenskih bodova, a smatra se položenim samo ako na njemu student postigne minimalno 50%-ni uspjeh (ispitni prag je 50% uspješno riješenih zadataka). Ukoliko je završni ispit prolazan, skupljeni bodovi će se pribrojati prethodnima i prema ukupnom rezultatu formirati će se pripadajuća ocjena. U suprotnom, student ima pravo pristupa završnom ispitu još 2 puta (ukupno do 3 puta). Konačna ocjena Donosi se na osnovu zbroja svih bodova prikupljenih tijekom izvođenja nastave prema sljedećoj skali: A -- 90%--100% (ekvivalent: izvrstan 5) B -- 75%--89,9% (ekvivalent: vrlo dobar 4) C -- 60%--74,9% (ekvivalent: dobar 3) D -- 50%--59,9% (ekvivalent: dovoljan 2) F -- 0%--49,9% (ekvivalent: nedovoljan 1) Ispitni rokovi Redoviti: 3. veljače 2021. 17. veljače 2021. Izvanredni: 31. ožujka 2021. 15. rujna 2021. RASPORED NASTAVE -- zimski (V) semestar ak. god. 2020./2021. Nastava će se na predmetu odvijati u zimskom semestru prema sljedećem rasporedu: predavanja: srijeda 8:15--9:45, prostorija O-358 i online vježbe: ponedjeljak 10:15--11:45, prostorija O-366 i online Tj. Datum Vrijeme Prostor Tema Nastava Izvođač 1. 5. 10. 2020. 10:15--11:45 O-366 Postavljanje okoline za razvoj programa na platformi ROCm (CUDA). Standardi C++11, C++14 i C++17. Formatiranje znakovnih nizova bibliotekom V v. pred. dr. sc. Vedran Miletić 1. 7. 10. 2020. 8:15--9:45 O-358 Uvod. Pojam i osnovne ideje računanja na grafičkim procesorima P izv. prof. dr. sc. Božidar Kovačić 2. 12. 10. 2020. 10:15--11:45 O-366 Arhitektura platforme ROCm (CUDA). Prevođenje i pokretanje gotovih programa otvorenog koda. Mjerenje performansi V v. pred. dr. sc. Vedran Miletić 2. 14. 10. 2020. 8:15--9:45 O-358 Povijest razvoja grafike i računanja na grafičkim procesorima P izv. prof. dr. sc. Božidar Kovačić 3. 19. 10. 2020. 10:15--11:45 O-366 Osnove rada s grafičkim procesorom: biblioteka rocPRIM (ugrađene funkcije CUDA-e) V v. pred. dr. sc. Vedran Miletić 3. 21. 10. 2020. 8:15--9:45 O-358 Paralelizam zasnovan na podacima. Struktura programa. Množenje matrica P izv. prof. dr. sc. Božidar Kovačić 4. 26. 10. 2020. 10:15--11:45 online Generiranje slučajnih brojeva: C++11 biblioteka random i biblioteka rocRAND V v. pred. dr. sc. Vedran Miletić 4. 28. 10. 2020. 8:15--9:45 online Memorije uređaja i prijenos podataka. Zrna i višenitni rad P izv. prof. dr. sc. Božidar Kovačić 5. 2. 11. 2020. 10:15--11:45 online Dokumentiranje programskog koda alatom Doxygen. Dokumentiranje programa alatom MkDocs V v. pred. dr. sc. Vedran Miletić 5. 4. 11. 2020. 8:15--9:45 online Indeksi blokova i niti. Redanje izvođenja zrna P izv. prof. dr. sc. Božidar Kovačić 6. 9. 11. 2020. 10:15--11:45 online 1. kontrolna zadaća I v. pred. dr. sc. Vedran Miletić 6. 11. 2020. 8:15--9:45 online Tipovi memorija. Tehnike za smanjenje korištenja globalne memorije. Memorija kao ograničavajući faktor kod paralelizacije P izv. prof. dr. sc. Božidar Kovačić 7. 16. 11. 2020. 10:15--11:45 online Operacije na vektorima i matricama: aplikacijska programska sučelja BLAS i LAPACK. C++ biblioteka Eigen V v. pred. dr. sc. Vedran Miletić 8. 23. 11. 2020. 10:15--11:45 online Operacije na vektorima i matricama: biblioteka rocBLAS (cuBLAS) V v. pred. dr. sc. Vedran Miletić 8. 25. 11. 2020. 8:15--9:45 online Tehnike za ...