Програмування з використанням технологій GPGPU (ВПК)
Тип: Нормативний
Кафедра: системного проектування
Навчальний план
Семестр | Кредити | Звітність |
5 | 3.5 | Іспит |
Лекції
Семестр | К-сть годин | Лектор | Група(и) |
5 | 32 | Парубочий В. О. | ФеП-33 |
Лабораторні
Семестр | К-сть годин | Група | Викладач(і) |
5 | 32 | ФеП-33 | Парубочий В. О. |
Опис навчальної дисципліни
В курсі “Програмування з використанням технологій GPGPU” (“Програмування на GPGPU”) розглядаються основні поняття, засоби та особливості програмування з використанням технології обчислень загального призначення на графічних процесорах (GPGPU). Основна увага приділяється засвоєнню знань та отриманню навиків розробки програмних застосунків за допомогою технології CUDA та програмного інтерфейсу CUDA C/C++, що використовують засоби графічного процесора для оптимізації та прискорення обчислень, що вимагають значних ресурсів та часу.
Предметом вивчення навчальної дисципліни є галузь обчислень загального призначення на графічних процесорах, її поняття, технології та засоби, а також технологія CUDA як найбільш перспективна та розвинута реалізація технології GPGPU.
Для закріплення теоретичних відомостей передбачений лабораторний курс.
Більш детальну інформацію про курс, можна отримати на сторінці курсу в Moodle.
Рекомендована література
- 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
- 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
- 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.
- 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.
- 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.
- 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
- 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
- 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
- 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.
- 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
- Steve Rennich, “CUDA C/C++ Streams and Concurrency,” Webinar, NVIDIA Corporation [Online], 2014. Available: https://developer.download.nvidia.com/CUDA/training/StreamsAndConcurrencyWebinar.pdf
- NVIDIA Corporation. CUDA Toolkit Documentation [Online]. Available: https://docs.nvidia.com/cuda/index.html
- NVIDIA Corporation. CUDA C++ Programming Guide [Online]. Available: https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
- NVIDIA Corporation. Thrust: The C++ Parallel Algorithms Library [Online]. Available: https://nvidia.github.io/thrust/
- NVIDIA Corporation. NVIDIA Technical Blog [Online]. Available: https://developer.nvidia.com/blog/
- NVIDIA Corporation, NVIDIA Developer. CUDA Code Samples [Online]. Available: https://developer.nvidia.com/cuda-code-samples