Читать онлайн «Основы программирования на CUDA : учебно-методическое пособие»

Автор Ю. В. Фролова

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования ОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Ф. М. ДОСТОЕВСКОГО В. В. Коробицын, Ю. В. Фролова ОСНОВЫ ПРОГРАММИРОВАНИЯ НА CUDA Учебно-методическое пособие Омск 2016 УДК 004. 4’2 ББК 32. 973. 202-018. 2я73 К681 Рекомендовано к изданию редакционно-издательским советом ОмГУ Рецензенты: канд. техн. наук С. А. Хрущев, канд. техн. наук И. Б. Ларионов Коробицын, В. В. К681 Основы программирования на CUDA : учебно-мето- дическое пособие / В. В. Коробицын, Ю. В. Фролова. – Омск : Изд-во Ом. гос. ун-та, 2016. – 68 с. ISBN 978-5-7779-2015-7 Издание включает главы с практическими заданиями, пред- назначенные для освоения основ программирования на CUDA. Шесть глав дают представление о базовых понятиях разработ- ки параллельных программ вычислений общего назначения на графическом процессоре. Для студентов вузов и начинающих программистов. УДК 004. 4’2 ББК 32. 973. 202-018. 2я73 c Коробицын В. В. , ○ Фролова Ю. В. , 2016 ISBN 978-5-7779-2015-7 c ФГБОУ ВО «ОмГУ ○ им. Ф. М. Достоевского», 2016 ОГЛАВЛЕНИЕ Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1 Знакомство с параллельными алгоритмами . . . . . . . . 7 1. 1. Понятие параллельного алгоритма . . . . . . . . . . . . . . . . 7 1. 2. Параллельное суммирование . . . . . . . . . . . . . . . . . . . . . 8 1. 3. Практические аспекты исследования алгоритмов . . . 15 1. 4. Практическое задание . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 Подготовка среды разработки параллельных про- грамм . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 21 2. 1. Описание инструментария . . . . . . . . . . . . . . . . . . . . . . . 21 2. 2. Установка CUDA под Linux . . . . . . . . . . . . . . . . . . . . . . 23 2. 3. Практическое задание . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3 Реализация простейшей программы на CUDA . . . . . 28 3. 1. Реализация умножения двух квадратных матриц . . 28 3. 2. Практическое задание . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4 Блочная иерархия программ на CUDA . . . . . . . . . . . . . 35 4. 1.