Вычисления на видеокартах

Санкт-Петербург, осень 2018

Описание

Цели курса

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

Описание

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

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

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

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

Преподаватели