刚开始接触TVM,这几天研究了一下,把环境配置好了。发现网上没有特别全的安装教程,这里打算整理和分享一下我自己的配置流程,同时也当作是笔记了。有什么不对的地方,欢迎大家指出。
目录
一.前言
系统环境:
Ubuntu 20.04
gcc 9.3.0
CMake 3.22.1
llvm 13.0.0
python 3.9.7
二.安装流程
1.CMake
推荐使用Cmake源码编译安装(因为用apt安装的Cmake可能不是最新版本)。
参考:https://www.cnblogs.com/yanqingyang/p/12731855.html
(1)首先到官方下载Cmake源码
官方链接:
(2) 解压
将下载下来的压缩包放到你指定的文件夹下,单击右键-->在终端打开,之后键入如下代码解压压缩包
tar -zxvf cmake-3.22.1.tar.gz
(3)安装
进入到解压后的文件夹中,单击右键-->在终端打开,键入如下代码
./bootstrap
此时若出现以下问题
则使用以下指令解决缺库问题:
sudo apt-get install libssl-dev
然后重新运行上述指令。
接着完成编译安装
make
sudo make install
cmake --version #验证安装版本
2.LLVM
推荐从官网下载预编译好的包
参考:
https://blog.csdn.net/chikey/article/details/85004556
LLVM_Ubuntu安装_406156440的博客-CSDN博客_llvm安装
(1)首先到官网下载
官方链接:https://releases.llvm.org/
选择自己需要的版本,点击后方download链接下载对应压缩包
(2)解压
注意刚下载下来的压缩包后缀是.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
(3)配置环境变量
可以将解压完以后的文件夹重命名为llvm13.0.0
Crtl+Alt+T打开终端,键入
sudo gedit /etc/profile
在最后添加两行内容
export LLVM_HOME=/home/xxx/llvm13.0.0/bin
export PATH=$LLVM_HOME:$PATH
(注意以上xxx是指你存放llvm13.0.0文件夹的目录)
随后重启电脑(或者终端激活环境变量)
以下代码验证安装版本
llvm-as --version
-----------------------------------------------------------------------------------------------------------------------------
python推荐安装Anaconda3后自己在环境里配置
-----------------------------------------------------------------------------------------------------------------------------
至此前期准备就完成了,下面开始安装配置tvm
3.TVM
依旧是下载源码编译安装
参考:
https://blog.csdn.net/mmphhh/article/details/116484914
https://blog.csdn.net/u014448054/article/details/101352550
https://blog.csdn.net/qq_33854260/article/details/106356907
https://blog.csdn.net/yinhuier/article/details/90673215
(1)下载官方源码
官方GITHUB开源代码:https://github.com/apache/tvm
下载完源码后要注意:
打开3rdparty文件夹,你会发现其中有几个文件夹是空的。
解决方法:将cutlass、dlpack、dmlc-core、libbacktrace、rang、vta-hw这六个子模块单独下载下来(点击标蓝的库,用↓Code下载即可),然后将它们覆盖到你下载的源码文件夹中去。
(2)安装依赖
Ctrl+Alt+T打开终端,键入
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
(3)编译共享库
移动到你下载的tvm文件夹目录下,单击右键-->在终端打开,键入
mkdir build
cp cmake/config.cmake build
此命令用于在tvm目录下创建build文件夹,并将配置文件复制到新建的build目录下
双击打开build文件夹下的config.cmake文件,找到以下配置,并将OFF设置为ON
set(USE_CUDA OFF) --->set(USE_CUDA ON)
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)
之后保存并关闭config.cmake文件
修改完配置文件,下面进行编译
在build目录下,单击右键-->在终端打开,键入
cmake ..
(若未出现问题可跳过以下部分)
-----------------------------------------------------------------------------------------------------------------------------
此时可能会出现以下问题:
CMake Error at cmake/modules/CUDA.cmake:29 (message):
Cannot find CUDA, USE_CUDA=ON
这是因为你还未将CUDA添加到环境变量中去的原因。
此处我因为后期学习会用到,所以索性重新安装了另一个版本的CUDA
【参考:https://blog.csdn.net/weixin_49223002/article/details/120509776】。
到官网下载所需版本的CUDA(https://developer.nvidia.com/cuda-toolkit-archive)
我选择的是11.3.1(做出CUDA版本选择时注意自己的显卡驱动是否支持)
下载完以后,到cuda_11.3.1_465.19.01_linux.run文件目录下,单击右键-->在终端打开,键入
sudo sh cuda_11.3.1_465.19.01_linux.run
之后出现下图,选择Continue,回车:
输入accept:
【关键】此处要将Driver前面的[X]变成[ ] (光标走到Driver位置按回车即可),之后选择Install,回车
等待安装完成
接着配置CUDA环境
Ctrl+Alt+T打开终端,键入
sudo gedit ~/.bashrc
在文件最后添加以下几行
export PATH=$PATH:/usr/local/cuda-11.3/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-11.3/lib64
保存并关闭
之后重启电脑 或者 终端键入
source ~/.bashrc
之后终端键入nvcc -V进行验证,如下图所示即成功
之后重新执行上一命令
即在build目录下,单击右键-->在终端打开,键入
cmake ..
问题得到解决
若再出现以下问题:
则说明你的第三方库仍然没有下载全,重新看第一步
-----------------------------------------------------------------------------------------------------------------------------
直到cmake全程没有问题
在cmake ..执行完后,键入
make -j4
(4)配置环境变量
打开终端
sudo gedit ~/.bashrc
在最后添加以下几行
export TVM_PATH=/home/xxx/tvm
export PYTHONPATH=$TVM_PATH/python:$TVM_PATH/python/tvm:$TVM_PATH/build:$TVM_PATH/python/tvm/runtime:${PYTHONPATH}
(依然注意上述xxx代表你自己tvm文件夹所在的目录)
保存并关闭
之后重启电脑 或者 终端source ~/.bashrc
验证TVM是否安装成功,终端键入
python
import tvm
tvm.__version__
出现如下图所示即表示成功