Exo 2 – новый язык программирования для высокопроизводительных вычислений

Exo 2 – малоизвестный язык. Поэтому компании вкладываются в найм талантов для создания высокопроизводительного библиотечного кода, лежащего в основе современных систем ИИ. Однако, можно обойтись и дешево.
Exo 2 относится к новой категории языков программирования, пишет xrust, которую профессор MIT называет «языками, планируемыми пользователем» (USL). Вместо того чтобы надеяться, что непрозрачный компилятор автоматически сгенерирует максимально быстрый код, USL ставят программистов на место водителя, позволяя им писать «расписания», которые явно контролируют, как компилятор генерирует код.
Это позволяет инженерам по производительности преобразовывать простые программы, которые указывают, что они хотят вычислить, в сложные программы, которые делают то же самое, что и исходная спецификация, но намного, намного быстрее.
Одним из ограничений существующих USL (например, оригинального Exo) является их относительно фиксированный набор операций планирования, что затрудняет повторное использование кода планирования в разных «ядрах» (отдельных компонентах в высокопроизводительной библиотеке).
Напротив, Exo 2 позволяет пользователям определять новые операции планирования вне компилятора, что упрощает создание повторно используемых библиотек планирования.
Ведущий разработчик языка, аспирант МТИ, заявил, что Exo 2 может сократить общий код расписания в 100 раз и обеспечить производительность, конкурентоспособную с современными реализациями на нескольких различных платформах, включая подпрограммы базовой линейной алгебры (BLAS), которые поддерживают многие приложения машинного обучения. Это делает его привлекательным вариантом для инженеров в области HPC, сосредоточенных на оптимизации ядер для различных операций, типов данных и целевых архитектур.