0
点赞
收藏
分享

微信扫一扫

极智AI | ubuntu编译安装onnx-mlir的正确姿势


大家好,我是极智视界,本文介绍一下 ubuntu编译安装onnx-mlir的正确姿势。

首先需要说说:什么是MLIR,什么是ONNX-MLIR。ONNX-MLIR是一个基于MLIR(Multi-Level Intermediate Representation)的开源项目,旨在将ONNX(Open Neural Network Exchange)模型转换为MLIR IR,以实现高效、可扩展和可优化的机器学习推理。而MLIR是一种多级别中间表示(IR),它提供了一个统一的框架,用于将各种不同的前端语言和后端目标之间的高效、可重用和可扩展的转换。ONNX-MLIR将ONNX图转换为MLIR IR,使得可以使用MLIR所提供的一些高级优化技术,例如优化缓冲区分配、运行时缩减和特定硬件的代码生成。

这里咱们来看看在ubuntu上如何正确编译安装onnx-mlir。

下面开始。

一、创建容器

# 首先拉取镜像
docker pull nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04

# 创建docker容器
sudo docker run -it -p 9663:22 --gpus all --privileged --net=bridge --ipc=host --pid=host --name mlir -v /workspace:/workspace nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 /bin/bash

二、安装依赖

编译和后续开发依赖要求:

python >= 3.8
gcc >= 6.4
protobuf >= 3.20.3
cmake >= 3.13.4
make >= 4.2.1 or ninja >= 1.10.2
java >= 1.11 (optional)
aptitude >= 0.8.12

lit==15.0.6
# numpy 1.24 deprecates np.object, np.bool, np.float, np.complex, np.str,
# and np.int which are used heavily in onnx-mlir.
numpy>=1.19.5, <=1.23.5
pytest>=4.6.9, <=7.2.0
pytest-xdist>=1.31.0, <=2.5

咱们可以使用anaconda来管理python的版本,可以使用如下命令进行mlir版本的管理:

conda create -n mlir_py385 python=3.8.5

让我们开始安装依赖:

apt update
apt install gcc libprotobuf-dev protobuf-compiler cmake aptitude 
# ==> 这样安装完后像cmake、make、ninja、protoc这些应该版本还不符合要求,还需要做一个升级
# ==> 对于怎么升级cmake、make、ninja和protoc版本,一般可以采用源码编译,由于我还没形成文章发布(只有本地笔记),这里就不放相关链接了,后面有机会会整理发布相关教程

# 安装python依赖
pip install -i https://pypi.douban.com/simple lit==15.0.6 numpy==1.19.5 pytest==4.6.9 pytest-xdist==1.31.0

到这里应该咱们的依赖以及依赖的版本都安装好了,没有问题了。

三、安装MLIR

安装MLIR,MLIR目前是LLVM项目的一部分。

# clone llvm项目
git clone -n https://github.com/llvm/llvm-project.git

# Check out a specific branch that is known to work with ONNX-MLIR.
cd llvm-project
git checkout ba8b8a73fcb6b830e63cd8e20c6e13b2a14d69bf

cd ..

开始编译:

mkdir llvm-project/build
cd llvm-project/build

cmake -G Ninja ../llvm \
   -DLLVM_ENABLE_PROJECTS=mlir \
   -DLLVM_TARGETS_TO_BUILD="host" \
   -DCMAKE_BUILD_TYPE=Release \
   -DLLVM_ENABLE_ASSERTIONS=ON \
   -DLLVM_ENABLE_RTTI=ON

cmake --build . -- ${MAKEFLAGS}
cmake --build . --target check-mlir

四、安装ONNX-MLIR

基于MLIR安装ONNX-MLIR:

git clone --recursive https://github.com/onnx/onnx-mlir.git

# MLIR_DIR must be set with cmake option now
MLIR_DIR=$(pwd)/llvm-project/build/lib/cmake/mlir
mkdir onnx-mlir/build && cd onnx-mlir/build
if [[ -z "$pythonLocation" ]]; then
  cmake -G Ninja \
        -DCMAKE_CXX_COMPILER=/usr/bin/c++ \
        -DMLIR_DIR=${MLIR_DIR} \
        ..
else
  cmake -G Ninja \
        -DCMAKE_CXX_COMPILER=/usr/bin/c++ \
        -DPython3_ROOT_DIR=$pythonLocation \
        -DMLIR_DIR=${MLIR_DIR} \
        ..
fi
cmake --build .

# Run lit tests:
export LIT_OPTS=-v
cmake --build . --target check-onnx-lit

极智AI | ubuntu编译安装onnx-mlir的正确姿势_深度学习

这样就把onnx-mlir安装成功了。

好了,以上分享了 ubuntu编译安装onnx-mlir的正确姿势,希望我的分享能对你的学习有一点帮助。

【极智视界】

《极智AI | ubuntu编译安装onnx-mlir的正确姿势》

极智AI | ubuntu编译安装onnx-mlir的正确姿势_编译优化_02

举报

相关推荐

0 条评论