简介
TVM是一个用于深度学习系统的编译器堆栈。
它旨在缩小以生产力为中心的深度学习框架与以性能和效率为中心的硬件后端之间的差距。TVM与深度学习框架合作,为不同的后端提供端到端编译。
换句话说,TVM就是一种将深度学习工作负载部署到硬件的端到端IR(中间表示)堆栈。可以表述为一种把深度学习模型分发到各种硬件设备上的、端到端的解决方案。
GitHub:https://github.com/dmlc/tvm
homepage:https://docs.tvm.ai/install/from_source.html
安装
1.docker镜像
1) hub网站上拉取官方提供的docker镜像
在 https://hub.docker.com/u/tvmai 进行版本查看 然后拉取 适合自己的镜像
eg:
docker pull tvmai/demo-cpu [此镜像中无tvm.relay]
2)官方docker脚本
官方提供了好多 dockerfile文件,可以通过官方提供的bash.sh 和 buid.sh脚本进行镜像选择以及自定义镜像制定
可通过dockerfile来查看每一个镜像里面包含的包。
eg:
git clone --recursive https://github.com/dmlc/tvm
/tvm/docker/bash.sh tvmai/demo-cpu [tvmai/demo-cpu中也无tvm.relay]
2. 源码编译
2.1下载源码
git clone --recursive https://github.com/dmlc/tvm
2.2构建共享库
#确保g++版本(4.8以上) 确保cmake版本(3.5以上)
sudo apt-get update
sudo apt-get install -y python3 python3-dev python3-setuptools gcc libtinfo-dev zlib1g-dev build-essential cmake
mkdir build
cp cmake/config.cmake build
2.3 安装llvm
cat /proc/version # 查看系统版本
cat /etc/issue #查看Ubuntu版本
- 采用下载Pre-Built Binaries 文件的方式安装 (尝试,简单可用)
#下载解压缩
wget -c http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
tar xJvf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz
#添加环境变量
pwd
vim ~/.bashrc
export PATH=$PATH:/path/to/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04/bin
source ~/.bashrc
#测试
clang
llvm-config --version
- 还有其他的方式下载llvm, 尝试了一下下面的方式,在最后一步,不知道哪里设置原因 出现了错误。 推荐第一种方法。具体 可见 https://apt.llvm.org/
vi etc/apt/sources.list
#添加
deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main #18.04
deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
apt update
apt-get install clang-8 lldb-8 lld-8
2.4自定义编译选项
vi build/config.cmake
set(USE_LLVM /path/to/your/llvm/bin/llvm-config) # 如果多个llvm可以设置查找具体的一个
or
set(USE_LLVM ON)
2.5build TVM 和相关库
cd build
cmake ..
make -j4
2.6python包安装
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:$TVM_HOME/topi/python:$TVM_HOME/nnvm/python:${PYTHONPATH}
#install tvm package for the current user
#NOTE: if you installed python via homebrew, --user is not needed during installaiton
#it will be automatically installed to your user directory.
#providing --user flag may trigger error during installation in such case.
export MACOSX_DEPLOYMENT_TARGET=10.9 # This is required for mac to avoid symbol conflicts with libstdc++
cd python; python setup.py install --user; cd ..
cd topi/python; python setup.py install --user; cd ../..
cd nnvm/python; python setup.py install --user; cd ../..
2.7安装python依赖
#推荐使用清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple
apt-get install python3-pip
pip3 install --user numpy decorator attrs
pip3 install --user tornado
pip3 install --user tornado psutil xgboost
pip3 install --user mypy orderedset antlr4-python3-runtime
资料
https://docs.tvm.ai/install/from_source.html
https://discuss.tvm.ai TVM讨论社区
https://github.com/dmlc/tvm