This document serves as an index for onnx-mlir documents.
- Installation is covered by README.md.
- Workflow.md describes how to contribute in github environment.
- This guideline is used to keep documentation and code consistent.
- UpdatingLLVMCommit.md describes how to update the commit of LLVM that ONNX-MLIR depends on.
- Onnx operation are represented with ONNX dialect in onnx-mlir.
- This document tell you how to generate an ONNX operation into ONNX dialect.
- After an ONNX model is imported into onnx-mlir, several graph-level transformations will be applied. These transformations include operation decomposition, constant propagation, shape inference, and canonicalization.
- Then the ONNX dialect is lowered to Krnl dialect. To help debugging and performance tuning, onnx-mlir supports instrumentation at the ONNX operand level.
- All the passes may be controlled with options.
- How to handle errors can be found here.
- How to support a new accelerator can be found here.
- How to analyze unknown dimensions and query their equality at compile time can be found here.
- A Jenkins monitor job was setup to help with updating LLVM commit. It locates the next commit we can update to without breaking ONNX-MLIR, as well as the commit that will break ONNX-MLIR. You can see the commit(s) here: s390x, ppc64le, amd64.
# Execution The compiled ONNX model can be executed with either a C/C++ driver python driver. or a java driver. The routine testing for onnx-mlir build is describe in this document.