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

Во второй части выпуска «Битовых масок» Константин Владимиров, инженер с 20-летним опытом разработки на C/C++, расскажет об особенностях разработки компиляторов для GPU. А также порассуждает о новых полезных вещах в стандартах C++ и объяснит, почему разработчикам компиляторов так важно знать стандарт. Чем отличаются CPU и GPU? В чем сложность гетерогенного программирования? Почему MLIR не применяется в графических компиляторах? Как использовать LLVM для GPU-компиляторов, несмотря на его недостатки для подобных архитектур? Когда мешает SSA? Почему наличие undefined behaviour — это хорошо? Что может быть включено в C++26? Ответы на эти и другие вопросы вы узнаете из нового эпизода. Первую часть выпуска c Константином, посвященную преимуществам и недостаткам компиляторов GCC и LLVM, а также современным подходам к аллокации регистров, смотрите по ссылке:    • LLVM и GCC / Register allocation / IT...   📍 Канал Константина:    / @tilir   ✅ Подписывайтесь на Telegram-канал подкаста:
🔹 Стань частью команды YADRO!
🎧 Слушать «Битовые маски» на других платформах: Яндекс.Музыка:
Apple Podcasts:
Все площадки:
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 — Заключение #gpu #llvm #cpp #opencl

Смотрите также