Базовый курс C++ (MIPT, ILab). Lecture 15. Вычисления на GPU.

preview_player
Показать описание
Лекции в бакалавриате МФТИ по C++ на русском языке.

Мы рассмотрим OpenCL API и рантайм, идею гетерогенных вычислений, язык OpenCL C и разберем несколько простых кернелов. По ходу мы внезапно кое-что узнаем о многопоточности и кое-что об атомарности.

Лектор: Константин Владимиров
Дата лекции: 31 января 2022 года
Съёмка: Владислав Белов.
Звук: Дмитрий Рябцев.

Timeline:
00:00 Гетерогенные вычисления и OpenCL
09:31 Владение ресурсами и контексты
14:40 Пересылка данных и C++API
24:30 Модель вычислений SIMT
34:10 На пути к vector add
51:00 Матрицы: локальная и приватная память
1:04:15 Барьеры и демонстрация GEMM
1:13:25 Оффлайн-компиляция и ассемблер GPU
1:20:50 Гистограмма и атомики
1:33:15 Битоническая сортировка
1:38:10 Литература и расширения OpenCL

Errata:
* Тут пока пусто
Рекомендации по теме
Комментарии
Автор

Константин, большое спасибо!
33:50 "Взрослая дискретная карточка" - в голос!
У вас, случайно, лекции по CUDA нет? Я не нашел, но вдруг проглядел.

АртёмАндреев-вй
Автор

14:00 --- у методов clEnqueue* зачастую есть параметр, который позволяет сделать вызов блокирующим, а не ждать эвента. Кроме того, очередь может быть и in-order

victormustya
Автор

@Konstantin Vladimirov спасибо за лекцию. Вопрос: зачем на слайде 31 второй барьер?

viacheslavbarkov
Автор

Вообще больше похоже на COM чем на Java, ручками же AddRef / Release вызываются как в COM.

creaor
Автор

Спасибо, что не Vulkan! С новыми видеокартами сами знаете что...

DRDRPETR