Базовый курс C++ (MIPT, ILab). Lecture 15. Вычисления на GPU.
Вставка
- Опубліковано 25 чер 2024
- Лекции в бакалавриате МФТИ по C++ на русском языке.
Мы рассмотрим OpenCL API и рантайм, идею гетерогенных вычислений, язык OpenCL C и разберем несколько простых кернелов. По ходу мы внезапно кое-что узнаем о многопоточности и кое-что об атомарности.
Лектор: Константин Владимиров
Дата лекции: 31 января 2022 года
Съёмка: Владислав Белов.
Звук: Дмитрий Рябцев.
Предыдущая лекция: • Базовый курс C++ (MIPT...
Следующая лекция: • Базовый курс C++ (MIPT...
Слайды ко всем лекциям: sourceforge.net/projects/cpp-...
Примеры кода ко всем лекциям: github.com/tilir/cpp-graduate
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:
* Тут пока пусто
Спасибо!
@Konstantin Vladimirov спасибо за лекцию. Вопрос: зачем на слайде 31 второй барьер?
Перед уходом на следующую итерацию цикла. Там всё на слайде это тело цикла, см. github.com/tilir/cpp-graduate/blob/master/11-compute/gemm_localmem.cl
14:00 --- у методов clEnqueue* зачастую есть параметр, который позволяет сделать вызов блокирующим, а не ждать эвента. Кроме того, очередь может быть и in-order
Константин, большое спасибо!
33:50 "Взрослая дискретная карточка" - в голос!
У вас, случайно, лекции по CUDA нет? Я не нашел, но вдруг проглядел.
Нет, я к слову довольно плох в CUDA. Что-то знаю но не эксперт.
А будет подобное про вулкан?
Не в этом курсе. Но вообще я давно хочу записать отдельную лекцию про Vulkan compute. Внезапно в играх, если смотреть отладчиком, вычислительные очереди бывают даже более загруженными чем графические.
Спасибо, что не Vulkan! С новыми видеокартами сами знаете что...
А что с ними?
С моей т.з. Vulkan compute вполне неплох и очень даже достоин рассмотрения, но там мало интересных абстракций для собственно вычислений. OpenCL это скорее такой золотой стандарт именно compute API.
@@tilir моя HD5870 никогда не узнает, что такое Vulkan. А OpenCl - пожалуйста.
Угу лучше на устаревшем куске опенг работать который не может нормально ресурсы современных пк распределить
@@juccbjufccfgjbfyh4613 Ну так цены и дефицит видеокарт других вариантов не оставляют.
@@uvash4611 раньше надо было брать, а не в ждуна по 100 лет играть, ответь честно, ты же бы и без дефецита новую карту не брал