【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
    评论
您可以按照以下步骤在Ubuntu上编译TVM: 1. 参考官方安装文档,确保您的系统环境是Ubuntu 18.04 LTS 64-bit,并根据文档中的说明进行准备工作。 2. 使用以下命令安装所需的依赖项: ``` sudo apt-get update sudo apt-get install -y python python-dev python-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake ``` 3. 在终端中使用以下命令下载TVM的源代码,并切换到源代码目录: ``` git clone --recursive https://github.com/apache/incubator-tvm.git cd incubator-tvm ``` 4. 执行以下命令编译TVM和LLVM部分: ``` mkdir build cp cmake/config.cmake build/ cd build cmake .. make -j4 ``` 5. 编译完成后,您可以在build目录中找到编译好的TVM库和可执行文件。 请注意,这里的步骤是基于Ubuntu 18.04 LTS 64-bit的环境进行的,其他环境或需求可能会有所不同。提供了更详细的信息和特定环境下的编译指南,您可以参考官方文档以满足您的需求。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Ubuntu下TVM编译安装](https://blog.csdn.net/weixin_43953703/article/details/94344889)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [dl-infer-perf:深度学习推理性能分析](https://download.csdn.net/download/weixin_42138545/16493843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值