TVM 安装教程(踩坑大指南)
1.系统环境安装Ubuntu20.04
安装参考链接:这是一个安装链接
2.配置git、vim、gcc、g++、cmake、python等环境
1)安装git
sudo apt-get install git
2)安装vim
sudo apt-get install vim
3)安装gcc 11、g++11
①下面三行代码就可以在一个啥都没有的ubuntu上安装g++11的环境
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install gcc-11 g++-11
②如何对运行环境默认使用的gcc、g++的版本进行更换?
可以参考这篇博客(这是一个链接)
4)安装cmake 3.12.4
可以参考这篇博客(这是一个链接)
①cmake下载网站:这是一个链接
②解压下载的文件:
tar -zxvf cmake-3.12.4.tar.gz
③进入cmake的源码目录:
cd cmake-3.12.4
④运行当前目录下的一个文件
./bootstrap
⑤运行命令(链接写的是gmake,应该是cmake,不用管它)
cmake
⑥进行安装
sudo cmake install
5)安装python 3.9
①unbutu20.04如何安装20.9(这是一个链接,如果我没记错的话,我用的第二种方法)
②也可以试试这个方法,这是我写文章刚刚搜到的(未验证):
apt-get update && apt-get upgrage -y && apt-get dist-upgrade -y
apt-get install python3.9 -y
ls -s /usr/bin/python3.9 /usr/bin/python
python -V // 当前 python 版本
6)检查安装的版本
①gcc、g++检查:
gcc -v
g++ -v
②cmake检查:
cmake --version
③python3.9检查:
python3
3.LLVM安装
①下载
官方链接:https://releases.llvm.org/
选择自己需要的版本,点击后方download链接下载对应压缩包
②解压
注意刚下载下来的压缩包后缀是.tar.xz,比如我下载的是clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz。此处是二重压缩,将压缩包移动到自己指定的目录下后,单击右键–>在终端打开,键入以下代码解压:
#先解压第一层压缩,执行命令后生成.tar文件
xz -d clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz
#解压tar文件
tar -xvf clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar
③配置llvm的全局环境,配置方法如下
vim的操作链接:这是一个链接
终端输入:
sudo vim ~/.bashrc
在打开文件的最后一行添加(具体咋操作看上面链接哈):
export LLVM_HOME=/home/xxx/llvm13.0.0/bin
#这是你的llvm的路径,每个人的不一样哈,自己看一下哈
export PATH=$LLVM_HOME:$PATH
关闭文档(看链接操作),输入命令让更改生效:
source ~/.bashrc
4.TVM安装
可以参考的链接:
链接①
链接②
链接③
1)下载源代码
①首先从TVM的Github仓库下载源码,注意添加–recursive选项,使得子模块代码可以一同下载。
$ git clone --recursive https://github.com/apache/tvm tvm
②初始化子模块
$ git submodule init
③更新子模块源码
git submodule update
2)编译
TVM的核心代码都是C++编写,所以编译的目的是生成libtvm.so和libtvm_runtime.so等动态链接库,当使用python脚本进行模型编译优化时,实际上调用的libtvm.so,运行模型时调用libtvm_runtime.so。因此安装TVM的目的变成了正确生成对应平台的动态库并让python脚本找到它。
①依赖工具安装:
$ 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
②创建一个编译的文件目录:
$ mkdir build
③复制配置文件
$ cp cmake/config.cmake build
④修改配置文件
set(USE_CUDA OFF) --->set(USE_CUDA ON)
#如果你有GPU的话
set(USE_LLVM OFF) --->set(USE_LLVM ON)
#这个是必须选的,切记
set(USE_GRAPH_EXECUTOR OFF) --->set(USE_GRAPH_EXECUTOR ON)
set(USE_PROFILER OFF) --->set(USE_PROFILER ON)
⑤编译
cd build
cmake ..
make -j4(线程数,自己根据电脑配置设置吧)
5.python包安装
①通过setup.py的形式(我自己用的这个)
#进入TVM的python文件目录下
cd python;
#运行一下代码
python setup.py install --user;
②设置环境变量(相信你已经熟悉了吧)
#这是你的tvm的安装目录
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
6.安装python依赖
pip3 install --user numpy decorator attrs
pip3 install --user tornado
pip3 install --user tornado psutil 'xgboost<1.6.0' cloudpickle
7.测试
终端输入:
python3
import tvm
如果没有报错,那么恭喜你就成功了。
备注:这是一篇关于TVM安装的回忆录,整理了一下资料,因为我自己安装了两次,趁现在还有点记忆就写了这篇博客,一个月之内欢迎问我问题,超过一个月就别问我了,因为可能我也忘记了。