Programming using GPGPU technologies (HPC)

Тип: Нормативний

Кафедра: system design

Навчальний план

СеместрКредитиЗвітність
53.5Іспит

Лекції

СеместрК-сть годинЛекторГрупа(и)
532Parubochyi V. O.ФеП-33

Лабораторні

СеместрК-сть годинГрупаВикладач(і)
532ФеП-33Parubochyi V. O.

Опис навчальної дисципліни

The course “Programming using GPGPU technologies” (“Programming on GPGPU”) examines the basic concepts, tools and features of programming using general-purpose computing technology on graphics processors (GPGPU). The main focus is acquiring knowledge and skills in developing software applications using CUDA technology and the CUDA C/C++ programming interface, which uses GPU tools to optimise and accelerate calculations that require significant resources and time.

The academic discipline’s subject of study is general-purpose computing on graphics processors, its concepts, technologies and tools, and CUDA technology is the most promising and advanced implementation of GPGPU technology.

A laboratory course is provided to consolidate theoretical knowledge.

More detailed information about the course can be obtained on the course page in Moodle.

Рекомендована література

  1. M. Harris, “A brief history of GPGPU,” UNC Ph.D., 2003 [Online]. Available: https://web.archive.org/web/20220318182947/https://www.cs.unc.edu/xcms/wpfiles/50th-symp/Harris.pdf
  2. S. Soller, “GPGPU origins and GPU hardware architecture,” High performance computing center Stuttgart, Stuttgart Media University, Stuttgart [Online]. Available: https://jeewhanchoi.github.io/publication/pdf/brief_history.pdf
  3. R. Vuduc and J. Choi, “A brief history and introduction to GPGPU,” Modern accelerator technologies for geographic information science, pp. 9-23, Aug 2013. doi: 10.1007/978-1-4614-8745-6_2.
  4. J. Nickolls and D. Kirk, “Graphics and Computing GPUs,” in D. A. Patterson and J. L. Hennessy, Computer Organization and Design RISC-V Edition: The Hardware Software Interface, 2nd ed. Waltham, MA, USA: Morgan Kaufmann, 2020, Appendix B. ISBN:‎ 978-0-12-820331-6.
  5. T. M. Aamodt, W. W. L. Fung, and T. G. Rogers. General-Purpose Graphics Processor Architectures. Kentfield, CA: Morgan & Claypool Publishers, 2018. ISBN: 978-1-62705-923-7, doi: 10.2200/S00848ED1V01Y201804CAC044.
  6. S. Biswas, “GPGPU Architectures and CUDA C,” in An Introductory Course on High-Performance Computing in Engineering, Indian Institute of Technology Kanpur, 2019 [Online]. Available: https://www.iitk.ac.in/hpc4e/workshop_files/GPU-CUDA_v3.pdf
  7. P. N. Glaskowsky, “NVIDIA’s Fermi: The First Complete GPU Computing Architecture,” NVIDIA Corporation [Online], 2009. Available: https://www.nvidia.com/content/PDF/fermi_white_papers/P.Glaskowsky_NVIDIA’s_Fermi-The_First_Complete_GPU_Architecture.pdf
  8. NVIDIA Corporation. NVIDIA CUDA Compute Unified Device Architecture – Programming Guide Version 1.0. (2007). Accessed: Oct. 07, 2023. [Online]. Available: https://developer.download.nvidia.com/compute/cuda/1.0/NVIDIA_CUDA_Programming_Guide_1.0.pdf
  9. J. Sanders and E. Kandrot. CUDA by example: an introduction to general-purpose GPU programming. USA: Addison-Wesley Professional, 2010. ISBN 978-0-13-138768-3.
  10. J. Luitjens, “CUDA streams: Best Practices and Common Pitfalls,” GPU Technology Conference, San Jose Convention Center, CA, 2014 [Online]. Available: https://on-demand.gputechconf.com/gtc/2014/presentations/S4158-cuda-streams-best-practices-common-pitfalls.pdf
  11. Steve Rennich, “CUDA C/C++ Streams and Concurrency,” Webinar, NVIDIA Corporation [Online], 2014. Available: https://developer.download.nvidia.com/CUDA/training/StreamsAndConcurrencyWebinar.pdf
  12. NVIDIA Corporation. CUDA Toolkit Documentation [Online]. Available: https://docs.nvidia.com/cuda/index.html
  13. NVIDIA Corporation. CUDA C++ Programming Guide [Online]. Available: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
  14. NVIDIA Corporation. Thrust: The C++ Parallel Algorithms Library [Online]. Available: https://nvidia.github.io/thrust/
  15. NVIDIA Corporation. NVIDIA Technical Blog [Online]. Available: https://developer.nvidia.com/blog/
  16. NVIDIA Corporation, NVIDIA Developer. CUDA Code Samples [Online]. Available: https://developer.nvidia.com/cuda-code-samples

Навчальна програма

Завантажити навчальну програму

Силабус: Course syllabus according to the 2022 curriculum, 2024 version

Завантажити силабус