LLVM в GPU компиляторах/Стандарты С++ (часть 2)

Во второй части выпуска «Битовых масок» Константин Владимиров, инженер с 20-летним опытом разработки на C/C , расскажет об особенностях разработки компиляторов для GPU. А также порассуждает о новых полезных вещах в стандартах C и объяснит, почему разработчикам компиляторов так важно знать стандарт. Чем отличаются CPU и GPU? В чем сложность гетерогенного программирования? Почему MLIR не применяется в графических компиляторах? Как использовать LLVM для GPU-компиляторов, несмотря на его недостатки для подобных архитектур? Когда мешает SSA? Почему наличие undefined behaviour — это хорошо? Что может быть включено в C 26? Ответы на эти и другие вопросы вы узнаете из нового эпизода. Первую часть выпуска c Константином, посвященную преимуществам и недостаткам компиляторов GCC и LLVM, а также современным подходам к аллокации регистров, смотрите по ссылке: Канал Константина: @tilir 00:00:00 — Тизер первой части 00:00:29 — Отличия CPU и GPU 00:02:03 — Особенности компиляторов для GPU 00:04:01 — Сложности применения LLVM для GPU-компиляторов 00:06:13 — Spill’ы в шейдерах  00:10:15 — Сложность гетерогенного программирования 00:11:18 — Проблемы компиляторных инженеров 00:13:27 — Использование LLVM в GPU-компиляторах 00:18:56 — MLIR и возможность его применения  00:21:13 — Особенности языков для GPU 00:26:07 — Backend в GPU-компиляторах 00:26:41 — Интересный баг 00:32:26 — Стоит ли писать на ассемблере 00:33:47 — Почему важно знать стандарты C 00:36:10 — Ошибка в Linux 00:38:55 — Польза undefined behaviour 00:45:33 — Новшества в C 23 и C 26 00:55:37 — Участие в разработке стандартов C 01:00:59 — Заключение // Стань частью команды YADRO! #gpu #llvm #cpp #opencl
Back to Top