Приветствую, товарищи! В предыдущем выпуске мы немного затронули тему процессоров «Эльбрус» и VLIW-архитектуры , но эта тема показалась интересной, и вот, в этом выпуске у меня снова в гостях Алексей Маркин, программист из МЦСТ, и этот выпуск целиком и полностью посвящен этой теме.
Вначале Лёша рассказал немного про компанию МЦСТ, историю её появления и развития, направления деятельности, и чем компания занимается сейчас.
Далее мы поговорили про процессоры «Эльбрус», что они из себя представляют, чем они принципиально отличаются от других архитектур (x86, ARM, RISC и прочее). Для VLIW-архитектуры «Эльбруса» порядок инструкций исполнения программы имеет особо важное значение, так как процессор не умеет их сам переставлять, поэтому оптимальный порядок формируется уже на этапе компиляции программы, и компилятор является неотъемлемой частью архитектуры.
Далее мы обсудили оптимизирующий компилятор для процессоров «Эльбрус», непосредственно разработкой которого Алексей и занимается. Лёша рассказал, что это такое — оптимизирующий компилятор, зачем он нужен и какие задачи решает, в чём его отличие от «обычных» gcc, clang. Довольно подробно Лёша рассказал про различные типы оптимизаций, которые присутствуют в компиляторе, что они дают на выходе в плане производительности, рассказал как вообще эти оптимизации находятся и разрабатываются и внедряются в компилятор. Рассказал про различные подводные камни на этом тернистом пути оптимизации :)
Так же обсудили сам процесс разработки компилятора, какие инструменты используются в команде разработки в МЦСТ, как устроено тестирование и сбор метрик, бенчмарки и замеры производительности.
Ссылки на ресурсы по темам выпуска:
- Блог Алексея
- Публикации МЦСТ по теме
- Откомпилируй Это — заброшенный блог Алексея про компиляторы, на который у него нет времени. Но если вдруг оно появится/найдутся желающие его вести – он будет очень рад :)
Понравился выпуск? — Поддержи подкаст на patreon.com/KSDaemon а так же ретвитом, постом и просто рассказом друзьям!