锅炉信息网 > 锅炉知识 > 锅炉学习

WSL环境安装TVM

本文是在WSL安装TVM。主要还是将踩过的坑及遇到的问题进行归纳总结。官方教程:https://tvm.apache.org/docs/install/from_source.

本文是在WSL安装TVM。主要还是将踩过的坑及遇到的问题进行归纳总结。

官方教程:


https://tvm.apache.org/docs/install/from_source.html

感觉官方文档有门槛,需要多搜相关资料,多读。

一、安装依赖库

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

可通过以下命令,查看安装版本号及所在目录

which gcc t// python3、cmake只需更换变量名ngcc -v

二、安装LLVM

  • 使用 LLVM 构建需要 LLVM 4.0 或更高版本
  • 由于从源代码构建 LLVM 需要很长时间,可以从 LLVM 官方下载Pre-Built版本

本文采用pre-build版本,所以避免了自己编译过程,参考博客。

(1)官网下载LLVM,链接为:https://releases.llvm.org/download.html

(2)下载并解压该文件

wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xzntar -xf clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz

进入clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04bin目录,找到llvm-config 文件,记录该文件的绝对路径。

三、安装TVM

(1) 获取源码

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

采用 --recursive选项是因为TVM有些子模块,在 3rdparty目录里实现,clone结束后可以看到 dlpackdmlc-corelibbacktracerangvta-hw为重要的子模块。

Submodule path '3rdparty/dlpack': checked out 'ddeb264880a1fa7e7be238ab3901a810324fbe5f'nSubmodule path '3rdparty/dmlc-core': checked out '21cc7de0dc9fd6acb796e1be6181fa8e6b6c8f41'nSubmodule path '3rdparty/libbacktrace': checked out '08f7c7e69f8ea61a0c4151359bc8023be8e9217b'nSubmodule path '3rdparty/rang': checked out 'cabe04d6d6b05356fa8f9741704924788f0dd762'nSubmodule path '3rdparty/vta-hw': checked out 'dfe9f572a43d41e0c1ecdf036cea97042a0febfe'

(2)源码编译

开始安装前,需要检查CMake 版本>=3.5、g++版本 >= 5、LLVM 版本>=4.0、CUDA版本>= 8.0。

①切换目录

cd tvmnmkdir build

②将cmake/config.cmake文件复制到build目录里

cp cmake/config.cmake build

.cmake 文件作用,参考博客

③ 更改config.cmake的属性,该操作主要是绑定LLVM 后端 ,主要是将llvm-config 文件的绝对路径,添加至 USE_LLVM 属性。

// 原始属性nset(USE_LLVM OFF)n// 修改属性n#set(USE_LLVM OFF)nset(USE_LLVM /mnt/e/TVM/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04/bin/llvm-config)

注意:

  • 可根据硬件结构,进行个性化设置,如果使用CUDA,找到set(USE_CUDA OFF)这条,将OFF改成ON
  • 可根据需求,进行 Debug设置,找到set(USE_GRAPH_RUNTIME OFF)set(USE_GRAPH_RUNTIME_DEBUG OFF)这两条,把OFF改成ON
  • LLVM后端指定有两种方法:1、找到set(USE_LLVM OFF),将OFF改成ON,编译时候会自动找到LLVM的位置;2、采用的的绝对路径指定的方式,set(USE_LLVM /path/to/llvm-config)

④ 编译安装

build文件夹下执行命令:

cmake ..nmake -j4

三、安装Python环境

(1)下载Linux版Anaconda

(2)开始安装

bash Anaconda3-2021.05-Linux-x86_64.sh

安装过程,根据提示输入yes或者持续回车,直至安装结束。注意:安装至最后有个yes提示,会显示anaconda的安装路径。

anaconda 添加至环境变量,可能遇到的问题:Ubuntu安装Anaconda3及系统环境变量配置详细版、关于profile和bashrc需要知道的知识点

(3)环境测试

四、环境变量配置及依赖包安装

(1)Pythontvm环境变量配置

  • 修改~/.bashrc文件

sudo vi ~/.bashrc

  • 文件末尾添加绝对路径

export TVM_HOME=/path/to/tvmnexport PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}

  • 重新激活环境变量

source ~/.bashrc

(2)依赖包安装

  • 创建虚拟工作空间

conda create -n tvm-build python=3.6

  • 激活虚拟工作空间

conda activate tvm-build

  • 安装依赖包

conda install numpy decorator attrs # 必须安装

如果需要自动微调模,需要安装

conda install tornado psutil xgboost cloudpickle # 可选

五、环境测试

打开Python解释器,运行如下指令:

如无报错,TVM 安装成功。

个人思考

(1)TVM和LLVM的安装建议从源码开始,了解每一步指令的操作内容含义及作用。

(2)开发环境的有效管理,尽可能避免多个环境的相关污染。

(3)编译过程发生了很多事情,比如动静态库的生成过程、框架主体部分的依赖关系

(4)CMake是一个庞大的体系,编译有很多技巧,尽可能查清楚


参考链接

[1] LLVM Download Page

[2] Install from Source

[3] 编译、安装 TVM


上一篇:OU2562S型显微维氏硬度计

下一篇:R.STAHL插头

锅炉资讯

锅炉资讯

锅炉学习

锅炉学习

锅炉视频

锅炉视频

锅炉百科

锅炉百科