极智AI | ubuntu编译安装onnx-mlir的正确姿势
Posted 极智视界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了极智AI | ubuntu编译安装onnx-mlir的正确姿势相关的知识,希望对你有一定的参考价值。
欢迎关注我的公众号 [极智视界],获取我的更多经验分享
大家好,我是极智视界,本文介绍一下 ubuntu编译安装onnx-mlir的正确姿势。
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq
首先需要说说:什么是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
这样就把onnx-mlir安装成功了。
好了,以上分享了 ubuntu编译安装onnx-mlir的正确姿势,希望我的分享能对你的学习有一点帮助。
【极智视界】
《极智AI | ubuntu编译安装onnx-mlir的正确姿势》
畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。https://t.zsxq.com/0aiNxERDq
以上是关于极智AI | ubuntu编译安装onnx-mlir的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章