1.下载代码
git clone --recursive https://github.com/apache/tvm.git tvm
git下载慢或者下载不下来可切换成国内源,执行:git clone https://github.com.cnpmjs.org/apache/tvm.git。
先不对子模块进行下载,故不需要参数–recursive,下载结束后进入.gitmodules 文件,修改其中的子模块下载地址,在下载地址github.com后面添加.cnpmjs.org后缀。
执行:git submodule sync,更新子模块下载地址
执行:git submodule update --init --recursive,更新子模块或下载子模块
2.安装依赖库
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
sudo apt-get install llvm
sudo apt-get install clang
3. 编译
mkdir build
cp cmake/config.cmake build
cd build
修改配置
cmake…
make
4.安装python 依赖库
pip3 install numpy decorator attrs
5. 配置环境变量
export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
- 典型target分析
print(tvm.target.Target("llvm"))
llvm -keys=cpu -link-params=0
for jetson nano cpu: target="llvm -device=arm_cpu -mcpu=cortex-a57"
print(tvm.target.Target("nvidia/jetson-nano"))
cuda -keys=cuda,gpu -arch=sm_53 -max_num_threads=1024 -max_threads_per_block=1024 -registers_per_block=32768 -shared_memory_per_block=49152 -thread_warp_size=32
print(tvm.target.target.micro("stm32f746xx"))
c -keys=cpu -link-params=0 -march=armv7e-m -mcpu=cortex-m7 -model=stm32f746xx
print(tvm.target.target.micro("host"))
c -keys=cpu -link-params=0 -model=host
print(tvm.target.target.arm_cpu("p20"))
llvm -keys=arm_cpu,cpu -device=arm_cpu -link-params=0 -mattr=+neon -model=kirin970 -mtriple=arm64-linux-android