TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)

近一年来尝试过TVM在ubuntu16.04 、ubuntu18.04、 ubuntu20.04 以及windows上的安装,也看了官方教程和网上各种博客,踩坑无数,现在总结在Ubuntu上踩坑几率最小的安装流程如下。

(建议学习TVM一开始就在ubuntu上进行,windows上TVM从安装到运行都会有意想不到的bug,我曾经遇到过同样的代码在windows上报奇怪的错而在Ubuntu上就不会)

以TVM0.9 在 ubuntu16.04 的安装为例。

一、下载TVM源码

TVM官网

Install from Source — tvm 0.9.dev0 documentation

1. TVM官网提供的github下载地址:

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

注1:从github上clone到本地后的代码可能不太完整,3rdparty/ 目录下可能会是空的

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第1张图片

        这时候就需要手动下载里面的包然后放到3rdparty/ 目录下,这部分我已上传压缩包至csdn大家可免费下载。

3rdparty/下所需包压缩文件

注2:上次我从官网下载的TVM源码在编译时遇到了C++变量重复定义的情况,大概是TVM本身源码与第三方包的变量名有重名,不知道目前这个bug解决没有,如果遇到此情况,可下载下面连接的TVM源码压缩包。

2. TVM完整源码压缩包

        TVM,0.9.dev0包含第三方库的代码-深度学习文档类资源-CSDN下载

        这是另一个博主上传的,亲测可用

二、安装所需依赖库

参照官网教程命令,安装TVM所需依赖库,终端运行以下命令即可。

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

三、下载LLVM

Ubuntu 安装LLVM的坑特别多,加上TVM坑就更多了,但如果要在cpu上用TVM进行优化加速,是一定需要LLVM的。

这里只推荐在LLVM官网下载预编译好的源码这一种方式,亲测这是踩坑几率最小的。

TVM在不同版本ubuntu上的安装流程,其实也只有这里下载的LLVM版本不一样,需要下载ubuntu版本对应的LLVM版本,除此之外,TVM安装过程中其他操作在不同版本ubuntu上都是一样的。

LLVM官方下载页:

http://releases.llvm.org/download.html

进入下载页面后选择与自己ubuntu版本所对应的LLVM预编译版本

点击连接下载压缩包(记得是点击图上紫色部分而不是(sig)

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第2张图片

 注:TVM要求LLVM版本大于0.4就行,因此你在某个LLVM版本下找不到对应的ubuntu版本的预编译包下载时,换一个即可,只要LLVM大于0.4就行。我现在是以ubuntu16.04安装为例,因此我就下载的是图上的 LLVM9.0.0 预编译包。

下载到本地后解压。

四、修改TVM/目录下config.cmake文件

1. 进入TVM/根目录,创建 build 文件夹,将 cmake/ 下的文件 config.cmake 复制到 build文件夹下

mkdir build
cp cmake/config.cmake build/

2. 然后对 build/ 下的 config.cmake 文件里参数进行修改。

注:这里主要是根据自己对TVM使用需求来对TVM进行一些编译时的设置,其实就是选择开启TVM的哪些功能。

 例如我需要TVM编译在CUDA上可执行的代码则将  “set(USE_CUDA OFF)” 改为 “set(USE_CUDA ON)”,其他等类似。

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第3张图片

下面是重点:把 build/config.cmake 文件中的 “set(USE_LLVM OFF)” 中的“OFF”                                  改为   前面下载的LLVM预编译包    解压后的文件里的   bin文件夹下的“llvm-config”的路径

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第4张图片

 这里的路径一定要正确,可以先进入到 llvm/bin/ 下使用 pwd 命令查看绝对路径,然后加上“llvm-config”复制到 config.cmake 里去。

 五、编译TVM

 在 tvm/build/ 下分别运行以下命令,进行编译

cmake ..
make -j4 #几个核就j几

等待编译完成

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第5张图片

如果一直没报错则表示安装成功。

六、添加python环境变量

TVM安装成功后,需要把TVM路径添加到python环境变量中,这样python在import tvm时才能成功导入。

终端运行  vim ~/.bashrc

在环境变量中添加以下两行,其中 “/path/to/tvm” 为tvm的根路径,即前面解压后的“tvm/”的绝对路径。

export TVM_HOME=/path/to/tvm  #/path/to/tvm 为tvm的根路径,即前面解压后的“tvm/”的绝对路径
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

修改好后保存退出

再在终端运行 source ~/.bashrc

使环境变量生效

 至此,TVM就全部安装成功了!

七、验证python中TVM能否成功导入

终端运行以下命令

 >>  python

 >>  import tvm

 >>  print(tvm.__version__)

TVM 0.9 在 ubuntu(任意版本)上的安装(简单且保姆级!)_第6张图片

 如输出无误则安装成功!

参考资料:

【KAWAKO】TVM-在ubuntu服务器上的安装_KKK_KAWAKO的博客-CSDN博客_tvm ubuntu

TVM学习(一)安装TVM Ubuntu16.04安装TVM0.8+clang-llvm12.0_!学习使我快乐!的博客-CSDN博客_tvm安装

你可能感兴趣的:(TVM,ubuntu,python,深度学习,人工智能,pytorch)