Um compilador e runtime baseado em MLIR que reduz modelos de ML a uma IR unificada para implantação em datacenters, dispositivos móveis e de edge.
onnx/onnx-mlir
Um compilador que converte grafos de redes neurais ONNX via MLIR em código com o mínimo de dependências de runtime.
- Estrelas
- 1,066
- Forks
- 457
- Issues abertas
- 357
- Último commit
- há 17 horas
O que é?
O ONNX-MLIR recebe um grafo de modelo ONNX válido e o compila em código que implementa o grafo, buscando exigir o mínimo de suporte em runtime. Ele implementa o padrão ONNX e é construído sobre a infraestrutura de compiladores LLVM/MLIR.
O projeto oferece um dialeto ONNX que outros projetos baseados em MLIR podem integrar, interfaces de compilador que convertem grafos ONNX em arquivos MLIR, bytecode LLVM ou bibliotecas C e Java, além do driver de linha de comando onnx-mlir. Também inclui interfaces de runtime em Python, C, C++ e Java para carregar e executar modelos compilados.
O suporte a operações ONNX individuais é acompanhado por destino, incluindo um backend genérico para CPU e o acelerador de IA integrado Telum da IBM. Os builds são executados nativamente em Linux, macOS e Windows, e imagens Docker são oferecidas como a configuração recomendada.
Recursos principais
- 01Converte grafos ONNX em MLIR, LLVM IR, arquivos objeto, bibliotecas compartilhadas ou arquivos JAR.
- 02Oferece um dialeto ONNX que outros projetos MLIR podem reutilizar.
- 03Disponibiliza interfaces de runtime em Python, C, C++ e Java.
- 04Oferece níveis de otimização de O0 a O3 e pode ler opções de uma variável de ambiente.
- 05Publica tabelas de suporte por operação para os destinos CPU e IBM Telum NNPA.
Casos de uso
- Implantar modelos ONNX como bibliotecas compiladas com o mínimo de dependências de runtime.
- Usar modelos ONNX em servidores IBM Telum por meio do backend NNPA.
- Criar ferramentas de compilação que integrem o dialeto ONNX a um pipeline MLIR.
Início rápido
- 1
Configure usando contêineres Docker pré-compilados (consulte docs/Docker.md).
- 2
Compile o ONNX-MLIR diretamente no Linux ou macOS (consulte docs/BuildOnLinuxOSX.md).
- 3
Converta um modelo ONNX para o dialeto ONNX usando o driver compilado.
./onnx-mlir --EmitONNXIR add.onnx
Antes de usar
- A compilação a partir do código-fonte exige um commit específico do LLVM/MLIR e vários pré-requisitos, como clang, protobuf e cmake.
- Não há uma instalação simples por gerenciador de pacotes; a configuração pode ser complicada em alguns sistemas, por isso o Docker é recomendado.
- O suporte a operações se limita às operações listadas nos documentos supported-ops do projeto.
Em coleções
Tópicos
Perguntas frequentes
- O que é onnx-mlir?
- Um compilador que converte grafos de redes neurais ONNX via MLIR em código com o mínimo de dependências de runtime. O ONNX-MLIR recebe um grafo de modelo ONNX válido e o compila em código que implementa o grafo, buscando exigir o mínimo de suporte em runtime. Ele implementa o padrão ONNX e é construído sobre a infraestrutura de compiladores LLVM/MLIR.
- onnx-mlir é gratuito? Qual é a licença?
- onnx-mlir é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- onnx-mlir ainda é mantido?
- Manutenção ativa. O último commit de onnx-mlir foi em 6 de nov. de 2026.
- Para que posso usar onnx-mlir?
- Implantar modelos ONNX como bibliotecas compiladas com o mínimo de dependências de runtime. Usar modelos ONNX em servidores IBM Telum por meio do backend NNPA. Criar ferramentas de compilação que integrem o dialeto ONNX a um pipeline MLIR.
- Como instalar onnx-mlir?
- Configure usando contêineres Docker pré-compilados (consulte docs/Docker.md). Compile o ONNX-MLIR diretamente no Linux ou macOS (consulte docs/BuildOnLinuxOSX.md). Converta um modelo ONNX para o dialeto ONNX usando o driver compilado.: ./onnx-mlir --EmitONNXIR add.onnx
- Onde consigo onnx-mlir?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/onnx/onnx-mlir
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Linguagem e compilador para escrever kernels de GPU personalizados e altamente eficientes para deep learning em código semelhante a Python, com mais produtividade que CUDA.
Acelerador multiplataforma para executar modelos de ML exportados no formato ONNX, com suporte ao treinamento de scripts do PyTorch.
Um framework de deep learning para Java independente de engine, que permite criar, treinar e executar modelos com uma API nativa de Java.
Ultralytics YOLOv5, toolkit de visão computacional baseado em PyTorch para detecção de objetos, segmentação de instâncias e classificação de imagens, com recursos de treinamento e exportação.
Framework de inferência de redes neurais de alto desempenho em C++ para executar modelos de deep learning em dispositivos móveis, embarcados e desktop.