Библиотека egg с открытым исходным кодом оптимизирует программы и упрощает их разработку

Представлена библиотека с открытым исходным кодом egg для универсальной оптимизации программ. Инструмент на основе графов равенства ускоряет код, сокращает аппаратные схемы и уже применяется в промышленных проектах.

Библиотека egg с открытым исходным кодом оптимизирует программы и упрощает их разработку
Источник

Многие инструменты в сфере разработки программного обеспечения — будь то компиляторы, оптимизаторы или синтезаторы — решают схожую фундаментальную задачу. Им необходимо преобразовывать сложные и объемные исходные программы в упрощенные эквиваленты. Основное требование к таким упрощенным версиям — сохранение исходной функциональности при одновременном повышении скорости работы и расширении совместимости с различными аппаратными платформами.

Сложность заключается в том, что эффективная оптимизация сильно зависит от конкретной области применения. То, что работает для сжатия трехмерных CAD-моделей, может не подойти для ускорения SQL-запросов, и на сегодняшний день не существует единого решения, подходящего для всех случаев.

Американский ученый Павел Панчеха предложил инструментарий с открытым исходным кодом egg. Этот набор инструментов представляет собой универсальный метод для решения задач оптимизации.

По словам Панчехи, традиционная разработка компиляторов и оптимизаторов всегда требовала глубокой проработки деталей и тонкой настройки. Новый подход, напротив, позволяет разработчикам начать работу с минимальным объемом кода и обещает высокую производительность.

В основе egg лежат структуры данных, известные как графы равенства (e-графы). Они позволяют системе сопоставлять различные варианты построения программы, которые ведут к одному и тому же результату. Когда инструментарий находит критическую массу возможных конфигураций (процесс, называемый «насыщением равенством»), система определяет наиболее эффективный вариант.

Хотя теоретические основы e-графов разрабатывались с 2009 года, именно реализация egg сделала этот подход практически применимым. Инструментарий уже нашел использование в промышленности: например, инженеры Intel применяют его для улучшения проектирования чипов. Сам Панчеха использовал egg в своем проекте для численных вычислений Herbie, что позволило ускорить его работу в 3000 раз и повысить качество результатов.

Панчеха отмечает гибкость системы, которая позволяет разработчикам экспериментировать и тестировать новые подходы. При этом он признает, что у egg есть ограничения — например, в некоторых проектах по компьютерной графике инструмент потребляет слишком много памяти. Однако даже в таких случаях его можно использовать как библиотеку для первоначального анализа и поиска рабочих решений, прежде чем переходить к более традиционным методам.

Читайте также: В США ускоряют принятие закона об «отключении ИИ» после серии хакерских атак.

Что будем искать? Например,ChatGPT

Мы в социальных сетях