Опыт ознакомления студентов с 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 студентам полученные знания пригодились при трудоустройстве.
На основании полученных результатов был сделан вывод о достижении ЛШ поставленных целей.
- Об утверждении новой редакции компетентностно-ориентированного учебного плана (рег. № 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)
- Боресков А.В., Харламов А.А. Основы работы с технологией CUDA. М.: ДМК-Пресс, 2010.
- Handbook of Fingerprint Recognition, 2nd ed. London: Springer-Verlag London Limited, 2009.
Вид представления доклада | Устное выступление и публикация |
Ключевые слова | биометрия, GPGPU, CUDA, летняя школа, дактилоскопия, отпечатки пальцев, университет, бакалавриат |
По вопросам спонсорского участия, оплаты участия коммерческих компаний, а также иным