轻松掌握 microTVM 编译步骤
1 引言
在当今快速发展的机器学习领域,TVM已经成为了一个不可或缺的工具。尤其是MicroTVM,作为TVM的一个重要分支,它专注于在资源受限的微控制器上运行机器学习模型,这在物联网(IoT)和边缘计算的背景下显得尤为重要。MicroTVM的存在极大地推动了机器学习模型在更小、更省电的设备上的应用,打开了智能设备和嵌入式系统的新局面。
在这篇博客中,我们将详细探讨如何从源码编译TVM,特别是针对MicroTVM的编译,让您能够在各种微控制器和小型设备上部署先进的机器学习模型。无论您是TVM的新手还是有经验的开发者,这篇博客都将为您提供宝贵的信息和指导。
2 编译TVM的前置条件
在编译TVM之前,确保系统中已安装了必要的工具和依赖项,包括gcc、git、cmake和llvm。这些工具对于编译过程至关重要。
2.1 Ubuntu/Debian
要在 Ubuntu/Debian 上安装这些必要的工具和依赖项,在终端中执行:
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev
sudo apt install llvm-dev
2.2 Mac
Mac 下使用 Homebrew,这一过程变得相当简单和直接,在终端中执行:
brew install gcc git cmake
brew install llvm
echo 'export PATH="/opt/homebrew/opt/llvm/bin:$PATH"' >> ~/.zshrc
echo 'export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"' >> ~/.zshrc
echo 'export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"' >> ~/.zshrc
source ~/.zshrc
在使用 M1 处理器的 macOS 上,我们一般建议使用 conda 来管理依赖项。这些依赖项包括 python 以及各种 python 工具包,在终端中执行:
conda create --name tvm python=3.8
conda activate tvm
3 下载和配置 TVM 源代码
3.1 下载 TVM 源代码
在您的系统中准备好了所有必要的编译工具后,下一步是下载 TVM 源代码。这一步骤通常通过 Git 完成,确保您能够获取最新的代码版本。
git clone --recursive https://github.com/apache/tvm tvm
cd tvm
3.2 切换到合适的分支(可选)
如果需要,您可以切换到一个特定的分支或标签,以访问特定版本的 TVM。
git checkout <branch_name>
3.3 配置 TVM 构建环境
TVM使用 cmake 来构建库,你可以通过编辑 config.cmake 或将 cmake 标志传递给命令行来修改 TVM 的配置,这里我使用 编辑 config.cmake 的方式来完成这项任务。
首先,创建一个编译目录并将配置文件拷贝到编译目录下,然后对配置文件进行修改。
mkdir build
cp cmake/config.cmake build
vim build/config.cmake
编辑以自定义编译选项,当你需要使用MicroTVM时,请确保至少打开以下配置项:
- set(USE_CMSISNN ON)
- set(USE_MICRO ON)
- set(USE_LLVM ON)
- set(USE_ETHOSU ON)
4 编译 TVM 并配置使用环境
4.1 编译 TVM
运行CMake来配置编译环境并执行构建。
cd build
cmake ..
make -j8
提示:
- 当cmake版本太低时,可以考虑用 conda install cmake 的方式来安装最新版本的cmake
- Ubuntu的环境可能不好安装 llvm ,可以使用 conda install llvm 的方式来安装最新版本的cmake
4.2 安装 Python 包
对于频繁修改TVM代码的程序员来说,设置环境变量 PYTHONPATH 以告诉 python 在哪里查找 TVM时一个比较好的方式。当你拉取最新的TVM代码并重新生成项目后,更改将立即实现(无需再次设置)。例如,假设你在目录 /path/to/tvm 上克隆了 tvm,那么我们可以在 ~/.zshrc 中添加以下行。
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
4.3 安装 Python 依赖项
# Necessary dependencies:
pip3 install --user numpy decorator attrs
# If you want to use : the TVM command line driver.
pip3 install --user typing-extensions psutil scipy
pip install --user cloudpickle ml_dtypes tornado
5 可能用到的资源
以下是一些推荐的网站,它们可能对于学习和使用TVM非常有帮助:
- Apache TVM Documentation — tvm 0.15.dev0 documentation
- GitHub - apache/tvm: Open deep learning compiler stack for cpu, gpu and specialized accelerators
- GitHub - ArmDeveloperEcosystem/Paddle-examples-for-AVH: 🤖 Use PaddlePaddle for OCR and Object Detection on Arm Cortex-M with Arm Virtual Hardware (AVH)

浙公网安备 33010602011771号