Obecné výpočty na GPU bližší informace o studiu na katedře

Obecné výpočty na GPU

Detaily předmětu

Vyučující Jaroslav Sloup
Rozsah výuky 1 + 2
Kredity 4
Semestr Z
Zakončení Kz
Web https://cent.felk.cvut.cz/courses/GPU/
Rozvrhy a4m39gpu, b4m39gpu

Anotace

Cílem předmětu je seznámení studentů se základními principy obecných výpočtů na grafických procesorech (GPGPU) a získání praktických zkušeností s návrhem a implementací aplikací využívajících pro urychlení výpočtů GPU. Výklad zahrnuje seznámení s architekturou současných grafických procesorů a jejími omezeními, základní koncepty paralelního programovaní GPU, jakyky pro programování GPU, technologii CUDA a metody optimalizace kódu. Cvičení jsou zaměřena na řešení typových úloh a semestrálních projektů. Důraz je kladen na získání praktických zkušeností s konkrétní technologií - CUDA.

Přednášky

  • 1.

    Úvod do počítání na GPU (architektury, jazyky, GPU versus CPU).

  • 2.

    Vicevláknové programování.

  • 3.

    Popis architektury nVidia CUDA a základy jejího programování (Compute Unified Device Architecture).

  • 4.

    Práce s vlákny a přístup do paměti (CUDA).

  • 5.

    Metody optimalizace kódu (CUDA).

  • 6.

    Ukázky návrhu a implementace aplikací v prostředí CUDA.

  • 7.

    Ostatní jazyky pro GPGPU I - OpenCL (Open Computing Language).

  • 8.

    Ostatní jazyky pro GPGPU II - GLSL (OpenGL Shading Language).

Cvičení

  • 1.

    Úvod - požadavky, bodové hodnocení. Programování pomoci SSE instrukcí.

  • 2.

    Ukázky konkrétních příkladů vicevláknových aplikací.

  • 3.

    CUDA - překlad programu, ladění, jednoduché příklady. Zadání projektu.

  • 4.

    CUDA - řešení jednoduché úlohy I (doplňování kódu do předpřipravené kostry aplikace).

  • 5.

    CUDA - řešení jednoduché úlohy II (doplňování kódu do předpřipravené kostry aplikace).

  • 6.

    Samostatná práce na projektu - konzultace I.

  • 7.

    Samostatná práce na projektu - konzultace I.

  • 8.

    Průběžná kontrola první části projektu.

  • 9.

    OpenCL - překlad programu, ladění, jednoduché příklady.

  • 10.

    OpenCL - řešení jednoduché úlohy (doplňování kódu do předpřipravené kostry aplikace).

  • 11.

    Samostatná práce na projektu - konzultace II.

  • 12.

    Samostatná práce na projektu - konzultace II.

  • 13.

    Odezvdáváni projektu + dokumentace.

  • 14.

    Zápočty.

Literatura & zdroje

  • 1.

    David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann, 1st edition, 2010, ISBN-13: 978-0123814722

  • 2.

    Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. Addison-Wesley Professional, 1st edition, 2010, ISBN-13: 978-0131387683

  • 3.

    Ryoji Tsuchiyama, Takashi Nakamura, Takuro Iizuka, Akihiro Asahara, Satoshi Miki: The OpenCL Programming Book. Fixstars Corporation, 2010