Компилятор и среда выполнения на базе MLIR, преобразующие ML-модели в единое IR для развертывания в дата-центрах, на мобильных и периферийных устройствах.
onnx/onnx-mlir
Компилятор, который преобразует графы нейросетей ONNX через MLIR в код с минимальными зависимостями во время выполнения.
- Звёзды
- 1,066
- Форки
- 457
- Открытые issues
- 357
- Последний коммит
- вчера
Что это?
ONNX-MLIR принимает корректный граф модели ONNX и компилирует его в код, реализующий этот граф, стремясь свести к минимуму поддержку во время выполнения. Проект реализует стандарт ONNX и построен на инфраструктуре компиляторов LLVM/MLIR.
Проект предоставляет диалект ONNX для интеграции с другими проектами на базе MLIR, интерфейсы компилятора для преобразования графов ONNX в файлы MLIR, байткод LLVM или библиотеки C и Java, а также драйвер командной строки onnx-mlir. В него также входят интерфейсы времени выполнения для Python, C, C++ и Java, позволяющие загружать и запускать скомпилированные модели.
Поддержка отдельных операций ONNX отслеживается для каждой целевой платформы, включая универсальный CPU-бэкенд и интегрированный AI-ускоритель IBM Telum. Сборку можно выполнять непосредственно в Linux, macOS и Windows; в качестве рекомендуемого варианта настройки предлагаются Docker-образы.
Ключевые возможности
- 01Преобразует графы ONNX в MLIR, LLVM IR, объектные файлы, разделяемые библиотеки или файлы JAR.
- 02Предоставляет диалект ONNX, который можно повторно использовать в других проектах MLIR.
- 03Предлагает интерфейсы времени выполнения для Python, C, C++ и Java.
- 04Поддерживает уровни оптимизации от O0 до O3 и позволяет считывать флаги из переменной окружения.
- 05Публикует таблицы поддержки операций для целевых платформ CPU и IBM Telum NNPA.
Сценарии использования
- Развёртывание моделей ONNX в виде скомпилированных библиотек с минимальными зависимостями во время выполнения.
- Запуск моделей ONNX на серверах IBM Telum с помощью бэкенда NNPA.
- Создание инструментов компилятора с интеграцией диалекта ONNX в конвейер MLIR.
Быстрый старт
- 1
Настройте среду с помощью готовых Docker-контейнеров (см. docs/Docker.md).
- 2
Соберите ONNX-MLIR напрямую в Linux или macOS (см. docs/BuildOnLinuxOSX.md).
- 3
Преобразуйте модель ONNX в диалект ONNX с помощью собранного драйвера.
./onnx-mlir --EmitONNXIR add.onnx
Что важно знать
- Для сборки из исходного кода нужны определённый коммит LLVM/MLIR и несколько предварительных условий, таких как clang, protobuf и cmake.
- Простого способа установки через менеджер пакетов нет; настройка в некоторых системах может быть непростой, поэтому рекомендуется использовать Docker.
- Поддерживаются только операции, перечисленные в документах проекта supported-ops.
В подборках
Темы
Частые вопросы
- Что такое onnx-mlir?
- Компилятор, который преобразует графы нейросетей ONNX через MLIR в код с минимальными зависимостями во время выполнения. ONNX-MLIR принимает корректный граф модели ONNX и компилирует его в код, реализующий этот граф, стремясь свести к минимуму поддержку во время выполнения. Проект реализует стандарт ONNX и построен на инфраструктуре компиляторов LLVM/MLIR.
- onnx-mlir можно использовать бесплатно? Какая у него лицензия?
- onnx-mlir распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- onnx-mlir всё ещё поддерживается?
- Активно поддерживается. Последний коммит в onnx-mlir — 6 нояб. 2026 г..
- Для чего можно использовать onnx-mlir?
- Развёртывание моделей ONNX в виде скомпилированных библиотек с минимальными зависимостями во время выполнения. Запуск моделей ONNX на серверах IBM Telum с помощью бэкенда NNPA. Создание инструментов компилятора с интеграцией диалекта ONNX в конвейер MLIR.
- Как установить onnx-mlir?
- Настройте среду с помощью готовых Docker-контейнеров (см. docs/Docker.md). Соберите ONNX-MLIR напрямую в Linux или macOS (см. docs/BuildOnLinuxOSX.md). Преобразуйте модель ONNX в диалект ONNX с помощью собранного драйвера.: ./onnx-mlir --EmitONNXIR add.onnx
- Где скачать onnx-mlir?
- Исходный код и инструкции по установке — на GitHub: https://github.com/onnx/onnx-mlir
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Язык и компилятор для написания эффективных пользовательских GPU-ядер глубокого обучения на Python-подобном коде — продуктивнее, чем на CUDA.
Кроссплатформенный ускоритель для запуска ML-моделей, экспортированных в формат ONNX, с поддержкой обучения с помощью PyTorch-скриптов.
Независимый от движка фреймворк глубокого обучения для Java, позволяющий создавать, обучать и запускать модели через нативный Java API.
Ultralytics YOLOv5 — библиотека компьютерного зрения на базе PyTorch для детекции объектов, сегментации экземпляров и классификации изображений, с обучением и экспортом моделей.
Высокопроизводительный фреймворк на C++ для инференса моделей глубокого обучения на мобильных, встраиваемых и настольных устройствах.