Опыт ознакомления студентов с GPGPU в формате летней школы

Прием тезисов завершен. Вы можете только разместить черновик.
Санкт-Петербургский государственный университет
В работе излагается опыт проведения летней школы по программированию вычислительных алгоритмов на графических картах (подход GPGPU). Описываются использованные технологии, формат проведения летней школы и решаемые в рамках неё задачи. Делается вывод о результатах проведения летней школы как в краткосрочной, так и в долгосрочной перспективе.

Согласно учебным планам СПбГУ IT-ориентированных направлений (например, «Программная инженерия» [1]) выпускники должны обладать навыками использования различных технологий разработки программного обеспечения. Для овладения этой компетенцией и подготовки к профессиональной деятельности представляется целесообразным знакомство студентов с разработкой и оптимизацией программ, использующих подход GPGPU (General-purpose computing on graphics processing units).

Для этого в рамках Летней школы (ЛШ) компании «Ланит-Терком» по программированию в 2013 и 2015 годах были проведены треки по GPGPU. В них участвовали в сумме 22 студента ММ факультета всех годов обучения по программам бакалавриата. Тематикой была выбрана цифровая дактилоскопия, так как эта тема близка научным интересам ментора, а применяемые в ней алгоритмы обработки изображений и биометрических шаблонов характеризуются высокой степенью параллелизма, но требуют адаптации под архитектуру GPGPU. Для ознакомления c GPGPU была выбрана технология NVIDIA CUDA [2]. Длительность ЛШ составляла 4 5-дневных недели по 8 часов ежедневно.

Сперва студентам предлагалось реализовать на любом известном им языке программирования упрощённый алгоритм сопоставления двух отпечатков [3]. На основании присланных решений и затраченного времени определялся уровень владения выбранными языками, а также наличие навыков оптимизации. Учебная нагрузка во время ЛШ корректировалась с учётом этих факторов.

Далее была проведена серия лекций по введению в биометрию, архитектуре биометрических систем, этапам и алгоритмам цифровой дактилоскопии, программной модели CUDA, синтаксису языка CUDA C и способам максимизации производительности в гетерогенных вычислительных системах (CPU+GPU). Затем студенту или группе давалась публикация на английском языке, посвящённая алгоритму обработки изображения, формирования биометрических шаблонов или их сопоставлению. Требовалось написать и отладить последовательную версию данного алгоритма на языке C# 4.0 и его же параллельную версию с использованием CUDA. Исходные коды были размещены в открытых репозиториях, что потребовало ознакомления студентов с системами контроля версий Subversion и Git. В качестве тестовых данных использовались открытые базы отпечатков. Параллельная реализация считалась успешной, если результат её работы совпадал с результатом последовательной. В процессе работы студенты активно взаимодействовали с ментором и решали возникавшие концептуальные и технические проблемы, например, схемы хранения данных на GPU, распределение рабочей нагрузки по потокам, группам (warps) и блокам, использование разделяемой памяти, синхронизацию потоков и т.п.

Заключительным этапом разработки параллельного алгоритма являлось профилирование кода для GPU с помощью NVIDIA Visual Profiler. Студенты изучали распределение нагрузки по мультипроцессорам и отдельным потокам, использование регистровой памяти, соответствие обращений потоков и их групп к глобальной памяти видеокарты оптимальным паттернам, после чего вносили изменения в программы и делали замеры производительности до и после профилирования.

Первоначальная оценка результатов ЛШ проводилась на основе реализованных программ. Все студенты продемонстрировали понимание концепции GPGPU, навыки работы с научным текстом на иностранном языке, умение на практике реализовывать поставленную задачу на технологии CUDA. Дальнейшая оценка проводилась на основе сбора информации об участниках во время обучения в СПбГУ: изучение курсовых и выпускных квалификационных работ бакалавров, анализ промежуточной и итоговой аттестации, анализ решений учебных задач в практических дисциплинах. Выявлена положительная корреляция между участием в ЛШ и демонстрируемым пониманием параллельных алгоритмов и методов обработки данных. Успеваемость участников ЛШ по курсу обработки изображений была выше средней. 4 студентам полученные знания пригодились при трудоустройстве.

На основании полученных результатов был сделан вывод о достижении ЛШ поставленных целей.

Список использованных источников
  1. Об утверждении новой редакции компетентностно-ориентированного учебного плана (рег. № 16/5080/1): приказ СПбГУ от 28 дек. 2015г. № 10661/1. URL: http://www.math.spbu.ru/ru/mmeh/PLANS/1/16_5080_090304bPrIng_15_12_28.pdf (дата обращения: 05.03.2016)
  2. Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. М.: ДМК-Пресс, 2010.
  3. Handbook of Fingerprint Recognition, 2nd ed. London: Springer-Verlag London Limited, 2009.
Вид представления доклада  Устное выступление и публикация
Ключевые слова  биометрия, GPGPU, CUDA, летняя школа, дактилоскопия, отпечатки пальцев, университет, бакалавриат

По вопросам спонсорского участия, оплаты участия коммерческих компаний, а также иным организационно-информационным вопросам просьба обращаться в организационный комитет по адресу: dea@ito.edu.ru, edu@apkit.ru или по телефону: +7 (925) 514-33-74.