python3 -m venv ./pyenv
source ./pyenv/bin/activate
source env.sourcecd ..
git clone --branch llvmorg-19.1.7 --depth 1 https://gitee.com/mirrors/LLVM.gitcd LLVM&&mkdir -p build && cd build
cmake -G Ninja ../llvm -DLLVM_ENABLE_PROJECTS="mlir" -DLLVM_INSTALL_UTILS=ON -DLLVM_TARGETS_TO_BUILD="" -DLLVM_ENABLE_ASSERTIONS=ON -DMLIR_INCLUDE_TESTS=OFF -DLLVM_INSTALL_GTEST=ON -DMLIR_ENABLE_BINDINGS_PYTHON=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../llvm_release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_BINDINGS=ON -DLLVM_ENABLE_LLD=ON -DLLVM_ENABLE_PIC=ON -DMLIR_INCLUDE_INTEGRATION_TESTS=ON -DPython3_EXECUTABLE=$(which python3)
cmake --build . --target install
#for gcc
sudo apt-get install libomp-dev
#for clang-20
sudo apt install libomp-20-devgit clone --branch v9.14 --depth 1 https://github.com/google/or-tools.gitmkdir build &&cd build
make -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld" -S ../ -DBUILD_DEPS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ortools_release
cmake --build . --config Release --target installbash build.sh- download lenet.onnx from here
- run
source env.source
model_transform.py --model_name lenet --model_path ./your/path/to/onnx --platform onnx - --mlir ./lenet.mlir- for more details see
model_transform.py --help
- test fp8/fp16 onnx model import
- update cast/quantize/dequantize op type infer and converter
- add torch converter
- add svjson converter
- add platform dependent pass for optmize imported model
- test operator to kernel lowering
- kernel dialect design
- kernel pass design
- kernel op fuse pass
- kernel active to lut op
- lenet from kernel dialect lowering to hal dialect
- finish packWeight Pass (pack all weight into weight group and address assgin)
- hal pass design
- add pass for hal to assign tensorKind
- hal dialect design
- infernece pass design
- toTOSA conversion
- import
pdllrewrite the canonical patterns - import
transformdialect to do transform dynamically - consider using safetensor instead of cnpy