如何在Ubuntu上正确编译安装ONNX-MLIR

释放双眼,带上耳机,听听看~!
学习如何在Ubuntu上正确编译安装ONNX-MLIR,一个基于MLIR的开源项目,旨在实现高效、可扩展和可优化的机器学习推理。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 5 天,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

如何在Ubuntu上正确编译安装ONNX-MLIR

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

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

 【公众号传送】

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

畅享人工智能的科技魅力。邀请您加入我的知识星球,星球内有丰富的AI技术应用相关技术文章、资源、项目源码,涵盖人脸、检测、分割、多模态、自动驾驶、工业等实用、好玩的项目应用,一定会对你的学习有所帮助。t.zsxq.com/0aiNxERDq

如何在Ubuntu上正确编译安装ONNX-MLIR

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

消除推荐系统偏差:从点击诱饵到持续时间偏差

2023-12-14 9:54:14

AI教程

电影推荐系统的召回层策略解析

2023-12-14 10:02:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索