Вычисления на видеокартах
Заочный курс / осень 2018, посмотреть все семестры

Цели курса

  • Дать понимание какие алгоритмы могут выиграть от реализации на видеокартах вместо процессора, а какие - не могут
  • Дать практический опыт разработки на видеокартах с помощью OpenCL
  • Научить базовым приемам оптимизации под видеокарты

Описание

В рамках курса будет рассказано чем отличаются видеокарты от центрального процессора, за счет чего в некоторых случаях они обладают существенным преимуществом в вычислительной мощности, какие алгоритмы могут выиграть от этого преимущества и как реализовывать такие алгоритмы. Большая часть обсуждаемых примеров будет приведена из областей компьютерной графики, компьютерного зрения и трехмерной реконструкции (structure from motion).

Так как курс очень прикладной, то существенную часть составляют практические задания. Основная часть каждого задания состоит из реализации OpenCL-кернелов - подпрограмм на языке C, которые будут выполняться на видеокарте. Большая часть вызовов OpenCL API функций будет спрятана в предоставляемой библиотеке, но общий обзор происходящего внутри библиотеки будет дан в рамках первых двух вводных практических заданий.

Пререквизиты

От слушателей ожидается хорошее знание алгоритмов и структур данных, а так же знание C++. Для выполнения практических заданий подходит любой компьютер (OpenCL-программы можно исполнять и на центральном процессоре). Практические задания будет возможно выполнить на любой операционной системе, но рекомендуемыми являются Ubuntu и Windows.

Дата и время Название Место Материалы
10 сентября
20:00–21:20
История видеокарт, введение в OpenCL, лекция Таймс, ауд. 413 слайдывидео
17 сентября
20:00–21:20
Введение в OpenCL. Архитектура видеокарты, лекция Таймс, ауд. 413 слайдывидео
24 сентября
20:00–21:20
Примеры оптимизаций с local memory, лекция Таймс, ауд. 413 слайдывидео
01 октября
20:00–21:20
Умножение матриц, лекция Таймс, ауд. 413 слайдывидео
08 октября
20:00–21:20
Collision detection, лекция Таймс, ауд. 413 слайдывидео
15 октября
20:00–21:20
Сортировки и collision detection 2, лекция Таймс, ауд. 413 слайдывидео
22 октября
20:00–21:20
Merge sort и Semi-Global Matching, лекция Таймс, ауд. 413 слайдывидео
29 октября
20:00–21:20
Sparse matrices, poisson reconstruction, LUT, лекция Таймс, ауд. 413 слайдывидео
12 ноября
20:00–21:20
Самая лучшая лекция: вариационные методы, лекция Таймс, ауд. 413 слайдывидео
19 ноября
20:00–21:20
Растеризация: OpenGL, Larrabee, cudaraster, лекция Таймс, ауд. 413 слайдывидео
26 ноября
20:00–21:20
OpenMP, сравнение GPU с CPU, как профилировать и оптимизировать, лекция Таймс, ауд. 413 слайдывидео
03 декабря
20:00–21:20
PyOpenCL, CUDA, multi-GPU, лекция Таймс, ауд. 413 слайдывидео