Detail předmětu

Architektura procesorů

FIT-ACHAk. rok: 2017/2018

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ů. 

Jazyk výuky

čeština

Počet kreditů

5

Výsledky učení 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ů.

Prerekvizity

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

Způsob a kritéria hodnocení

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

Osnovy výuky

    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 počítačových cvičení:
    1. Měření výkonnosti sekvenčního kódu.
    2. Vektorizace kódu pomocí OpenMP 4.0.
    3. CUDA: Paměťové přenosy, jednoduché kernely.
    4. CUDA: Práce se sdílenou pamětí.
    5. CUDA: Práce s texturní a konstantní pamětí, operace redukce.

    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

Učební cíle

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.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

  • 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í

Základní literatura

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

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

  • Program IT-MGR-2 magisterský navazující

    obor MBI , 0 ročník, zimní semestr, volitelný
    obor MSK , 2 ročník, zimní semestr, povinně volitelný
    obor MMM , 0 ročník, zimní semestr, volitelný
    obor MBS , 0 ročník, zimní semestr, povinně volitelný
    obor MPV , 2 ročník, zimní semestr, povinný
    obor MIS , 0 ročník, zimní semestr, volitelný
    obor MIN , 0 ročník, zimní semestr, volitelný
    obor MGM , 2 ročník, zimní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  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 velmi dlouhým instrukčním slovem (VLIW). SW řetězení, predikace, binární překlad.
  6. Procesory s podporou vláken. 
  7. Měření výkonnosti (PAPI). Techniky nízkopříkonových procesorů.
  8. Procesory s podporou datového paralelismu,  SIMDová rozšíření SWAR, GPU a SIMT.
  9. Architektura grafických jednotek GPU.
  10. Programovací jazyk CUDA, model vláken a paměťový model
  11. Synchronizace a redukce na GPU, návrh a optimalizace algoritmů pro GPU.
  12. Víceproudové zpracování, multi-GPU systémy, knihovny pro programování na GPU.
  13. Architektura akcelerátorů s mnoha jádry (MIC, Xeon Phi) a jejich programování.

Projekt

13 hod., nepovinná

Vyučující / Lektor

Cvičení na počítači

10 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Měření výkonnosti sekvenčního kódu.
  2. Vektorizace kódu pomocí OpenMP 4.0.
  3. CUDA: Paměťové přenosy, jednoduché kernely.
  4. CUDA: Práce se sdílenou pamětí.
  5. CUDA: Práce s texturní a konstantní pamětí, operace redukce.