Минималистичный векторный JIT-компилятор Loops. Оптимизация инференс-движков и СУБД с помощью слияния циклов и других приёмов.

Языки программирования и технические стеки

C/C++
Оптимизация производительности

Доклад принят в программу конференции

Целевая аудитория

Компиляторщики, хардкор-оптимизаторы.

Тезисы

Оптимизация - тема неиссякающая. Одним из классических методов оптимизации как для edge, так и для серверов является векторизация. При этом автовекторизация хорошо работает только на относительно простых задачах, а значит актуальной остаётся задача ручной векторизации. Мы разработали небольшой кросс-платформенный векторный JIT-компилятор для x86, Arm и Risc-V - удобный инструмент для хардкор-оптимизаторов, пишущих на C++.

В докладе обсудим:

  • Нишу нашего проекта, сравним его с разными JIT и AOT-решениями: xbyak, llvm, mir, rcc.

  • Коротко остановимся на архитектуре и дизайне.

  • Рассмотрим API и живые примеры использования, чтобы продемонстировать удобство.

  • Узнаем, как библиотека применялась в реальных проектах и какие результаты это принесло.

  • Дальнейшие планы развития проекта.

Профессионально программирует на C++ с 2008 года. С 2015 - компьютерное зрение, с 2017 - CAD, с 2022 - компиляторы. Сейчас занимается компьютерным зрением на производстве. Ходит в горы.

Видео

Другие доклады секции

Языки программирования и технические стеки