Федорус Олексій МстиславовичДемедюк Вiталiй2023-10-102024-05-142023-10-102023Демедюк В. Розробка та оптимiзацiя C++ програм з використанням технологiї CUDA для гетерогенних систем з графiчним процесором : кваліфікаційна робота … бакалавра : 122 Комп’ютерні науки / Демедюк Віталій. – Київ, 2023. – 95 с.https://ir.library.knu.ua/handle/123456789/4992Розглянуто розширення мови C++ вiд компанiї NVIDIA – CUDA С++, яке дозволяє звичним нам способом розробляти застосунки, якi використовують переваги графiчних процесорiв. Розглянуто ряд основних обмежень, якi накладає компiлятор NVCC на код пристрою, недотримання яких може призвести до помилки компiляцiї або невизначенiй поведiнцi при виконаннi, розглянуто рiзнi методи керування й доступу до пам’ятi, а також рiзнi технiки для оптимiзацiї передачi даних мiж хостом та графiчним процесором. Розглянуто рiзнi методи оптимiзацiї алгоритмiв, використовуючи усi переваги гетерогенної системи, яка складається з двох 64 ядерних центральних та одного графiчного NVIDIA A100 процесорiв. Для кожного реалiзацiї були проведенi замiри часу їх виконання, i де потрiбно для кращого розумiння таких показникiв, провели повне профiлювання програми за допомогою утилiти Nsight Systems. Для кожної задачi спершу приводились однопотоковi та паралельнi реалiзацiї, якi для обчислень використовували тiльки CPU. Було покращено алгоритм Флойда – Воршелла, для уже менш класичної пролеми для вiдеокарт – задачi про найкоротший шлях в орiєнтованому зваженому граф. Для неї уже шляхом замiни двох внутрiшнiх циклiв у алгоримi Флойда – Воршелла, на виклик ядра у двовимiрнi сiтцi з двовимiрних блокiв, було досягнуто прискорення у 20-30 разiв вiдносно паралельного алгоритму на CPU. Ключовi слова: CUDA, C++, GPU, графiчний процесор, гетерогенна система, оптимiзацiя, високопродуктивнi обчислення.uaРозробка та оптимiзацiя C++ програм з використанням технологiї CUDA для гетерогенних систем з графiчним процесоромБакалаврська робота