DiscoverБитовые маски: о системном программировании простыми словамиКомпилятор для CPU и GPU. Часть 2. LLVM в GPU компиляторах/Стандарты С++
Компилятор для CPU и GPU. Часть 2. LLVM в GPU компиляторах/Стандарты С++

Компилятор для CPU и GPU. Часть 2. LLVM в GPU компиляторах/Стандарты С++

Update: 2024-01-121
Share

Description

Во второй части выпуска «Битовых масок» Константин Владимиров, инженер с 20-летним опытом разработки на C/C++, расскажет об особенностях разработки компиляторов для GPU. А также порассуждает о новых полезных вещах в стандартах C++ и объяснит, почему разработчикам компиляторов так важно знать стандарт.

Чем отличаются CPU и GPU? В чем сложность гетерогенного программирования? Почему MLIR не применяется в графических компиляторах? Как использовать LLVM для GPU-компиляторов, несмотря на его недостатки для подобных архитектур? Когда мешает SSA? Почему наличие undefined behaviour — это хорошо? Что может быть включено в C++26? Ответы на эти и другие вопросы вы узнаете из второй части выпуска.


Видеоверсия выпуска: https://youtu.be/_SIBiSR8rzM

00:00:00 — Тизер второй части

00:01:00 — Отличия CPU и GPU

00:02:33 — Особенности компиляторов для GPU

00:04:31 — Сложности применения LLVM для GPU-компиляторов

00:06:43 — Spill’ы в шейдерах

00:10:45 — Сложность гетерогенного программирования

00:11:48 — Проблемы компиляторных инженеров

00:13:57 — Использование LLVM в GPU-компиляторах

00:19:27 — MLIR и возможность его применения

00:21:43 — Особенности языков для GPU

00:26:37 — Backend в GPU-компиляторах

00:27:12 — Интересный баг

00:32:56 — Стоит ли писать на ассемблере

00:34:19 — Почему важно знать стандарты C++

00:36:40 — Ошибка в Linux

00:39:26 — Польза undefined behaviour

00:46:04 — Новшества в C++23 и C++26

00:56:07 — Участие в разработке стандартов C++

01:01:30 — Заключение

Comments 
In Channel
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Компилятор для CPU и GPU. Часть 2. LLVM в GPU компиляторах/Стандарты С++

Компилятор для CPU и GPU. Часть 2. LLVM в GPU компиляторах/Стандарты С++