【microTVM】 轻松掌握TVM编译关键步骤

1 引言

在当今快速发展的机器学习领域,TVM已经成为了一个不可或缺的工具。尤其是MicroTVM,作为TVM的一个重要分支,它专注于在资源受限的微控制器上运行机器学习模型,这在物联网(IoT)和边缘计算的背景下显得尤为重要。MicroTVM的存在极大地推动了机器学习模型在更小、更省电的设备上的应用,打开了智能设备和嵌入式系统的新局面。
在这篇博客中,我们将详细探讨如何从源码编译TVM,特别是针对MicroTVM的编译,让您能够在各种微控制器和小型设备上部署先进的机器学习模型。无论您是TVM的新手还是有经验的开发者,这篇博客都将为您提供宝贵的信息和指导。

2 编译TVM的前置条件

在编译TVM之前,确保系统中已安装了必要的工具和依赖项,包括gcc、git、cmake和llvm。这些工具对于编译过程至关重要。
要在 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

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并配置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,那么我们可以在 ~/.bashrc 中添加以下行。

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

5 可能用到的资源

以下是一些推荐的网站,它们可能对于学习和使用TVM非常有帮助:

6 总结

在这篇博客中,我们详细探讨了如何在Mac M1操作系统上从源码编译TVM。我们从安装必要的工具和依赖开始,然后详细介绍了如何使用Git下载TVM源代码,并进行了基本的配置。
TVM和MicroTVM的世界广阔而深奥,等待着我们去探索。无论你的兴趣在于优化深度学习模型的性能,还是在边缘设备上实现复杂的机器学习算法,TVM都为您提供了实现这些目标的可能性。祝您在探索TVM的旅程中取得成功!

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值