构建环境
Host:x86
操作系统:Linux ubuntu 5.4.0-150-generic #167~18.04.1-Ubuntu
构建步骤
构建分两步走:首先通过X86端构建得到mindspore-lite的模型转换工具:converter_lite,然后再针对异构环境的交叉构建,获取用于部署在异构端的Minspore Lite运行库。
【1】X86下构建
目的:通过源码构建converter_lite
Source branch:r2.7.1
构建示例脚本,build.MinSpore.Lite.X86_64.sh:
#!/bin/bash
# Define the directory where MindSpore repository will be cloned
MINDSPORE_LITE_DIR="mindspore-lite"
#MINDSPORE_LITE_PACKAGE_r2_7_2="mindspore-lite-2.7.2-linux-x64.tar.gz"
# Check if MindSpore directory exists
if [ -d "$MINDSPORE_LITE_DIR" ]; then
echo "MindSpore repository already exists. Skipping cloning."
cd "$MINDSPORE_LITE_DIR"
else
# Clone MindSpore repository if it doesn't exist
git clone -b r2.7.2 https://gitee.com/mindspore/mindspore-lite.git "$MINDSPORE_LITE_DIR"
cd "$MINDSPORE_LITE_DIR"
echo "NO Source!!"
exit
fi
#enable downloading thirdparty lib from gitee
export MSLITE_ENABLE_CONVERTER=on
export MSLIBS_SERVER="tools.mindspore.cn"
export MSLITE_ENABLE_TOOLS=on
bash build.sh -I x86_64 -j12
经过测试,上述脚本编译会报错。这个问题参考 [Bug]: x86_64版本开启编译converter工具时编译不通过 · Issue #ID1NFW · MindSpore/mindspore-lite - Gitee.com
所以使用converter_lite可以直接从官方下载(选择r2.7.1 x86版本): 下载MindSpore Lite | MindSpore Lite master 文档 | MindSpore
【2】arm+飞腾dsp异构环境在主机(x86)下交叉构建:
CPU:arm32
DSP:ft04
Source branch:master
组件:dsp_sdk(dsp hthread 运行时库)
构建示例脚本,build.MinSpore.Lite.ft04.sh:
#!/bin/bash
check_and_install_arm_toolchain() {
if ! dpkg -l | grep -q g++-arm-linux-gnueabi; then
sudo apt-get update
sudo apt-get install -y --no-install-recommends g++-arm-linux-gnueabi
else
echo "g++-arm-linux-gnueabi already installed"
fi
if ! dpkg -l | grep -q gcc-arm-linux-gnueabi; then
sudo apt-get update
sudo apt-get install -y --no-install-recommends gcc-arm-linux-gnueabi
else
echo "gcc-arm-linux-gnueabi already installed"
fi
if ! dpkg -l | grep -q g++-arm-linux-gnueabihf; then
sudo apt-get update
sudo apt-get install -y --no-install-recommends g++-arm-linux-gnueabihf
else
echo "g++-arm-linux-gnueabihf already installed"
fi
if ! dpkg -l | grep -q gcc-arm-linux-gnueabihf; then
sudo apt-get update
sudo apt-get install -y --no-install-recommends gcc-arm-linux-gnueabihf
else
echo "gcc-arm-linux-gnueabihf already installed"
fi
}
# 自动检测并安装交叉编译工具链
check_and_install_arm_toolchain
#Mindspore lite仓库名
MINDSPORE_LITE_DIR="mindspore-lite"
# 源码仓库检测
if [ -d "$MINDSPORE_LITE_DIR" ]; then
echo "MindSpore repository already exists. Skipping cloning."
cd "$MINDSPORE_LITE_DIR"
else
# Clone MindSpore repository if it doesn't exist
git clone -b master https://gitee.com/mindspore/mindspore-lite.git "$MINDSPORE_LITE_DIR"
cd "$MINDSPORE_LITE_DIR"
fi
export MSLITE_ENABLE_TESTCASES=ON
export MSLITE_REGISTRY_DEVICE=ft04
export MSLIBS_SERVER="tools.mindspore.cn"
export DSP_SDK_PATH=/home/cgj/MindSpore/Mindspore-lite.from.1024/dsp_sdk
bash build.sh -I arm32 -j4
构建结果:
参考文档:[端侧编译 | MindSpore Lite 2.7.0 文档 | MindSpore] https://www.mindspore.cn/lite/docs/zh-CN/r2.7.0/build/build.html
