TVM-安装说明

1. 概述

本文主要讲述TVM的源码安装流程,以及安装过程遇到的问题详细流程建议参考官方文档Install from Source

2. 下载

首先从TVM的Github仓库下载源码,注意添加--recursive选项,使得子模块代码可以一同下载。

$ git clone --recursive https://github.com/apache/tvm tvm

由于国内网络等原因,下载过程大概率会被中断,请多次尝试或者换个稳定的网络环境。下载中断后,可以进入tvm目录重新拉取子模块的源码。

  • 初始化子模块

该命令根据.gitsubmodules文件配置初始化。

$ git submodule init
  • 更新子模块源码
$ git submodule update

注意:有时update提示完成,但是子模块文件里面仍然是空的,此时需要将该文件夹删除,重新update

2. 编译

TVM的核心代码都是C++编写,所以编译的目的是生成libtvm.solibtvm_runtime.so等动态链接库,当使用python脚本进行模型编译优化时,实际上调用的libtvm.so,运行模型时调用libtvm_runtime.so。因此安装TVM的目的变成了正确生成对应平台的动态库并让python脚本找到它。

2.1. 依赖工具安装

制作TVM所需的“食材”[源码]已经准备完毕,下面检查做菜的相关工具是否齐全。TVM的源码编译主要依赖cmakemake工具,编译器gcc和交叉编译工具build-essential等。

$ sudo apt-get update
$ sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake libedit-dev libxml2-dev

2.2. 编译选项配置

2.2.1. 创建编译目录

创建一个用于盛放TVM的容器,并将这个容器命名为build

$ mkdir build

注意:不要随意修改目录命名,否则python脚本识别不到libtvm.so,导致import tvm错误等。

2.2.2. 编译配置文件

除了食材和工具,想做好TVM这道菜我们还需要一份菜谱,根据这个菜谱我知道要加入哪些食材,加不加香菜,要不要辣。将这个菜谱从cmake/config.cmake拷贝到build

$ cp cmake/config.cmake build

将这个菜谱打开,看看到底有些啥?

2.2.2.1. 后端支持

TVM支持很多后端的部署,可以根据实际需要选择性开启相关后端支持。

比如常见的CUDA,可以将set(USE_CUDA OFF)变成set(USE_CUDA ON),将CUDA加入编译。

  • 后端配置默认列表
CUDAROCMOpenCLMETALVULKANOpenGL
OFFOFFOFFOFFOFFOFF
2.2.2.2. RPC服务

默认开启RPC服务,但是关于C++和IOS的RPC默认关闭。

2.2.2.3. 调试

为了便于调试,确保嵌入式图像可执行器和调试函数功能使能。

  • set(USE_GRAPH_EXECUTOR ON)
  • set(USE_PROFILER ON)

为了便于IR调试,set(USE_RELAY_DEBUG ON),并设置环境变量

$ export TVM_LOG_DEBUG=1
2.2.2.4. LLVM

关于llvm的版本需要4.0或者更高的版本

  • 预编译安装
  1. 进入LLVM Download Page
    根据自己的系统选择较新版本的LLVM进行下载;
  2. 指定LLVM配置文件路径;
    set(USE_LLVM /path/to/your/llvm/bin/llvm-config)
  • 源安装
  1. 需取得数字证书
$ wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -
  1. 查找更新源
    进入LLVM Debian/Ubuntu nightly packages页面,找到自己系统的安装源;

  2. 添加更新源
    打开/etc/apt/sources.list文件,如果系统是ubuntu20.04,可以添加如下:

  • deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main
  • deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main
$ sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main'

具体添加内容根据自己的系统选择。

  1. 系统源更新
$ sudo apt-get update
  1. 安装LLVM
sudo apt-get install clang-12 lldb-12

注:如果提示提示无法安装,kill相应apt apt-get进程
$ sudo killall apt apt-get

3. 开发环境

3.1. 永久配置

  • 打开 .bashrc文件,添加下述环境变量
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

henry.zhu51

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值