Програмування на GPGPU (ВПК)

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

Кафедра: системного проектування

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

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

Лекції

СеместрК-сть годинЛекторГрупа(и)
532доцент Павлишенко Б. М.ФеП-33

Лабораторні

СеместрК-сть годинГрупаВикладач(і)
532ФеП-33Парубочий В. О., доцент Павлишенко Б. М.

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

В курсі “Програмування на GPGPU” розглядаються основні поняття, засоби та особливості програмування з використанням технології обчислень загального призначення на графічних процесорах (GPGPU). Основна увага приділяється засвоєнню знань та отриманню навиків розробки програмних застосунків за допомогою технології CUDA та програмного інтерфейсу CUDA C/C++, що використовують засоби графічного процесора для оптимізації та прискорення обчислень, що вимагають значних ресурсів та часу.

Предметом вивчення навчальної дисципліни є галузь обчислень загального призначення на графічних процесорах, її поняття, технології та засоби, а також технологія CUDA як найбільш перспективна та розвинута реалізація технології GPGPU.

Для закріплення теоретичних відомостей передбачений лабораторний курс.

Більш детальну інформацію про курс, можна отримати на сторінці курсу в 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

Силабус: Силабус курсу за навчальним планом 2020 року, варіант 2022 року

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

Силабус: Силабус курсу за навчальним планом 2022 року, варіант 2023 року

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

Силабус: Силабус курсу за навчальним планом 2020 року, варіант 2023 року

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