Fakulta informačních technologií VUT v Brně

Detail předmětu

Architektura procesorů

ACH Ak. rok 2018/2019 zimní semestr 5 kreditů

Předmět pokrývá architekturu univerzálních i specializovaných procesorů. Paralelismus na úrovni instrukcí (ILP) je studován na procesorech skalárních, superskalárních a VLIW. Dále jsou probrány procesory s vláknovým paralelismem (TLP). Datový paralelismus je ilustrován na SIMDových instrukcích a na grafických procesorech (SIMT).  Probírají se základní techniky paralelizace výpočtů na GPU (CUDA). Jsou vysvětleny i techniky nízkopříkonových procesorů. 

Garant předmětu

Jazyk výuky

česky

Zakončení

zápočet+zkouška (písemná)

Rozsah

26 hod. přednášky, 10 hod. pc laboratoře, 16 hod. projekty

Bodové hodnocení

60 zkouška, 10 půlsemestrální test, 30 projekty

Zajišťuje ústav

Přednášející

Cvičící

Bordovský Gabriel, Ing. (UPSY FIT VUT)
Kadlubiak Kristián, Ing. (UPSY FIT VUT)

Získané dovednosti, znalosti a kompetence z předmětu

Přehled mikroarchitektury procesorů a jejich trendů, dovednost porovnat procesory a simulovat vhodnými nástroji vliv změn v jejich architektuře. Osvojit si měření výkonnosti procesorů. Znalosti o architektuře a obvodové podpoře paralelního zpracování na grafických procesorech bezprostředně využitelné pro akceleraci výpočtů.

Cíle předmětu

Seznámit se s architekturou nejnovějších procesorů pracujících s paralelismem na úrovni instrukcí, vláken a dat. Ujasnit si úlohu překladače a jeho spolupráci s procesorem. Získat schopnost orientovat se v nabídce mikroprocesorů, dovést je hodnotit a porovnávat. Dále se seznámit s architekturou grafických procesorů a jejich použitím pro akceleraci výpočtů (GPGPU) a s technikami použitými u nízkopříkonových procesorů pro mobilní aplikace.

Proč je předmět vyučován

Existuje spousta problémů a programovacích jazyků, kde na výkonu aplikace, použitém procesoru nebo spotřebě elektrické energie nezáleží. Pokud programuji v Java nebo Pythonu, pak mě použitý procesor v podstatě nezajímá. Co ale dělat v případě, kdy pracuji na složitém úkolu a výkon aplikace, či příkon systému je věc naprosto kritická? Odpověď je jednoduchá, musím program uzpůsobit použitému procesoru!

Smyslem kurzu ACH je detailně rozebrat architekturu současných superskalárních procesů a grafických karet s jediným cílem: "Vyrazit ze systému maximální výkon v dané aplikace".

Naučíte se tedy, jak procesor pracuje se složitými proudy instrukcí, jak spekulativně provádí různé části kódu nebo jak efektivně přednačítá data z paměti. Velký důraz klademe na vektorizaci smyček, což jeden z hlavních trendů navyšování výkonu procesorů a naprosto klíčová technologie pro akceleraci programů pomocí grafických karet.

Požadované prerekvizitní znalosti a dovednosti

Architektura počítače typu von Neumann, hierarchická organizace paměťového systému, programování v JSI, činnost a funkce kompilátoru

Literatura studijní

Literatura referenční

  • Baer, J.L.: Microprocessor Architecture. Cambridge University Press, 2010, 367 s., ISBN 978-0-521-76992-1.
  • Hennessy, J.L., Patterson, D.A.: Computer Architecture - A Quantitative Approach. 5. vydání, Morgan Kaufman Publishers, Inc., 2012, 1136 s., ISBN 1-55860-596-7. 
  • Kirk, D., and Hwu, W.: Programming Massively Parallel Processors: A Hands-on Approach, Elsevier, 2010, s. 256, ISBN: 978-0-12-381472-2
  • Jeffers, J., and Reinders, J.: Intel Xeon Phi Coprocessor High Performance Programming, 2013, Morgan Kaufmann, p. 432), ISBN: 978-0-124-10414-3

Osnova přednášek

  1. Skalární procesory: zřetězené zpracování, asistence kompilátoru.
  2. Superskalární CPU, dynamické plánování instrukcí, predikce skoků.
  3. Optimalizace toku dat přes registry a přes paměť, hierarchie pamětí cache.
  4. Optimalizace načítání instrukcí a dat. Příklady superskalárních procesorů.
  5. Procesory s podporou datového paralelismu, SIMDová a vektorizace.
  6. Procesory s podporou vláken.
  7. Architektura grafických jednotek GPU a zpracování SIMT.
  8. Programovací jazyk CUDA, model vláken a paměťový model.
  9. Synchronizace a redukce na GPU, návrh a optimalizace algoritmů pro GPU.
  10. Víceproudové zpracování, multi-GPU systémy, knihovny pro programování na GPU.
  11. Architektura akcelerátorů s mnoha jádry (MIC, Xeon Phi) a jejich programování.
  12. Procesory s velmi dlouhým instrukčním slovem (VLIW). SW řetězení, predikace, binární překlad.
  13. Techniky nízkopříkonových procesorů.

Osnova ostatní - projekty, práce

  • Měření výkonnosti a optimalizace procesorového kódu pomocí OpenMP 4.0
  • Akcelerace výpočetní úlohy pomocí CUDA 8.0

Průběžná kontrola studia

Vyhodnocení dvou projektů v celkovém rozsahu 13 hodin, bodovaná počítačová cvičení, půlsemestrální písemka.

Kontrolovaná výuka

  • Zameškaná cvičení je možné nahradit v alternativní termín (pondělí nebo pátek)
  • V poslední týdnu semestru budou probíhat náhradní civčení

Podmínky zápočtu

Získání 20 ze 40 bodů za projekty a půlsemestrální písemku.

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Popřednáška2018-09-24 A113 09:0010:50ACH náhrada za státní svátek
Útzkouška2019-01-22 E104 13:0014:50 1MIT 2MIT 1. oprava
Útzkouška2018-12-18 A112 15:0016:50Zkouška ACH
Stpoč. labvýuky O204 08:0009:50 1MIT 2MIT MPV xx
Stpoč. labvýuky O204 10:0011:50 1MIT 2MIT MPV xx
Stpoč. labvýuky O204 12:0013:50 1MIT 2MIT MPV xx
Stzkouška2019-01-30 E104 14:0015:50 1MIT 2MIT 2. oprava
zkouška2018-11-09 A112 09:0009:50Půlsemestrální test
přednáškavýuky A112 10:0011:50 1MIT 2MIT MPV xx
zkouška2019-01-04 D0207 15:0016:50 1MIT 2MIT řádná

Zařazení předmětu ve studijních plánech

  • Program IT-MGR-2, obor MBI, MIN, MIS, MMM, libovolný ročník, volitelný
  • Program IT-MGR-2, obor MBS, libovolný ročník, povinně volitelný skupina C
  • Program IT-MGR-2, obor MGM, 2. ročník, volitelný
  • Program IT-MGR-2, obor MPV, 2. ročník, povinný
  • Program IT-MGR-2, obor MSK, 2. ročník, povinně volitelný skupina C
Nahoru