Параметри
Розробка та оптимiзацiя C++ програм з використанням технологiї CUDA для гетерогенних систем з графiчним процесором
Дата випуску :
2023
Автор(и) :
Демедюк Вiталiй
Анотація :
Розглянуто розширення мови 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 обчислення.
Розглянуто ряд основних обмежень, як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 обчислення.
Бібліографічний опис :
Демедюк В. Розробка та оптимiзацiя C++ програм з використанням технологiї CUDA для гетерогенних систем з графiчним процесором : кваліфікаційна робота … бакалавра : 122 Комп’ютерні науки / Демедюк Віталій. – Київ, 2023. – 95 с.
Файл(и) :
Вантажиться...
Формат
Adobe PDF
Розмір :
2.54 MB
Контрольна сума:
(MD5):7754bd680654dc1cbb2543106b76d013
Ця робота розповсюджується на умовах ліцензії Creative Commons CC BY-NC