====== Informace o předmětu ====== Přednáška: Jaroslav Sloup St 14.30 KN:E-301 (K9) Seznam studentů: A4M39GPU Cvičení: Jaroslav Sloup Čt 11.00 KN:E-327 Seznam studentů: A4M39GPU Konzultace: Po domluvě e-mailem. ===== 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. ====== Literatura ====== * I.Šimeček, J.Sloup: Programování grafických akcelerátorů. Skriptum, Česká technika - nakladatelství ČVUT, 2013. ===== CUDA (Compute Unified Device Architecture) ===== * David B. Kirk, Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach. 2nd ed., Morgan Kaufmann, 2012, ISBN 978-0124159921. * Jason Sanders, Edward Kandrot: CUDA by Example: An Introduction to General-Purpose GPU Programming. 1st ed., Addison-Wesley Professional, 2010, ISBN 978-0131387683. * Nicholas Wilt: CUDA Handbook: A Comprehensive Guide to GPU Programming. 1st ed., Addison-Wesley Professional, 2013, ISBN 978-0321809469. * Shane Cook: CUDA Programming: A Developer's Guide to Parallel Computing with GPUs. 1st ed., Morgan Kaufmann, 2012, ISBN 978-0124159334. * Rob Farber: CUDA Application Design and Development. 1st ed., Morgan Kaufmann, 2011, ISBN 978-0123884268. * NVIDIA Corporation: NVIDIA CUDA C Programming Guide. Version 7.5, NVIDIA Corporation, 2015. * NVIDIA Corporation: NVIDIA CUDA Runtime API Reference Manual. Version 7.5, NVIDIA Corporation, 2015. * ===== OpenCL (Open Computing Language) ===== * Aaftab Munshi, Benedict Gaster, Timothy G. Mattson, James Fung, Dan Ginsburg: OpenCL Programming Guide. 1st ed., Addison-Wesley Professional, 2011, ISBN 978-0321749642. * Benedict Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa: Heterogeneous Computing with OpenCL. 2nd ed., Morgan Kaufmann, 2012, ISBN 978-0124058941. * Matthew Scarpino: OpenCL in Action: How to Accelerate Graphics and Computations. 1st ed., Manning Publications, 2011, ISBN 978-1617290176. * Ryoji Tsuchiyama, Takashi Nakamura, Takuro Iizuka, Akihiro Asahara, Satoshi Miki: The OpenCL Programming Book. Fixstars Corporation, 2010. * Aaftab Munshi: The OpenCL Specification. Version: 1.2, Khronos OpenCL Working Group, 2011. ===== Parallel Programming ===== * Gerassimos Barlas: Multicore and GPU Programming: An Integrated Approach. 1st ed., Morgan Kaufmann, 2014, ISBN 978-0124171374. * Thomas Rauber, Gudula Rünger: Parallel Programming: for Multicore and Cluster Systems. 1st ed., Springer, 2010, ISBN 978-3642048173.