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

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


精选推荐

  • 催化燃烧设备供应商
    催化燃烧设备供应商

    催化燃烧设备供应商,催化燃烧处理装置厂家,本装置是采用废气先进入喷淋塔过滤——干式过滤—-蜂窝活性碳吸附—脱附再生——催化燃

  • 该不该有模具供应商
    该不该有模具供应商

    今天红姐又来跟我探讨供应商的管理问题了。故事是这样的:供应商来料不良,原因是模具问题。而那个模具是我们找的一家模具供应商做的

  • 什么牌子高压锅好,高压锅哪个牌子好,高压锅什么牌子好,高压锅哪个品牌好
    什么牌子高压锅好,高压锅哪个牌子好,高

    1苏泊尔 双重安全阀门 高压锅双重安全阀,防烫把手,复合底。这款高压锅拥有双重安全阀门,更好的保证使用安全。搭载防烫伤把手,方便起

  • 高压锅啥牌子好,高压锅哪个牌子的好,什么高压锅牌子好,高压锅推荐选购指南
    高压锅啥牌子好,高压锅哪个牌子的好,什

    1、双喜阶梯型复底高压锅推荐理由:高压锅满足上蒸下煮,饭菜同时进行,方便快速,有效提升烹饪效率。多重安全防护,安全系数较高,家人使用

0