1. 下载TVM
远程仓库都是基于git仓管理代码的,先安装git软件。
github是基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。你可以按如下命令来生成 sshkey:
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
# Generating public/private ed25519 key pair...
注意:这里的 xxxxx@xxxxx.com
只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub
文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
# ssh-ed25519 AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
复制生成后的 ssh key,通过仓库主页右上角的设置( Account Settings )进入,然后点击菜单栏的 SSH nd GPG keys 进入页面点击New SSH key添加SSH。
在git Bash 中输入以下代命令
ssh -T git@github.com
若返回”Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.“内容,则证明添加成功。
接下来就可以下载代码了,输入以下命令
git clone --recursive https://github.com/apache/tvm tvm
注意要加 --recursive选项,TVM代码库中3rdparty路径下的一些subproject的代码需要被git clone下来,否则导致缺少文件,会引发编译错误。
由于github网站不太稳定,导致递归下载子项目容易出错,可以手动进入该目录,用git clone下载子项目代码。
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
保证安装过程没有错误,如果出错,可以再
3. 安装LLVM
下载源的链接 根据自己系统的版本下载
选择一个LLVM版本(比如#16)添加到/etc/apt/sources.list
里面
如果没有安装vim文档编辑器需要先安装vim。
解锁存档签名
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
签名
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-16 main'
安装LLVM
sudo apt-get update
sudo apt-get install clang-16 lldb-16 lld-16
4. 编译TVM
进入TVM目录
mkdir build
cd build
cp ../cmake/config.cmake ./
自定义编译选项
打开刚刚复制过来的config.cmake 文件,根据自己的需求修改参数
更改为启用 CUDA 后端。对您要为其构建的其他后端和库(OpenCL、RCOM、METAL、VULKAN …)执行相同的操作。
set(USE_CUDA ON)
为了帮助调试,请确保使用和启用嵌入式图形执行器和调试功能
set(USE_GRAPH_EXECUTOR ON)
set(USE_PROFILER ON)
使用 IR 进行调试,并设置环境变量TVM_LOG_DEBUG。
set(USE_RELAY_DEBUG ON)
直接设置让cmake搜索一个可用的LLVM版本。
set(USE_LLVM ON)
保存
执行编译命令
cmake ..
make -j4
5. 设置环境变量
设置环境变量PYTHONPATH来告诉 python 在哪里可以找到库。我们可以在打开 ~/.bashrc
中添加以下行。
vim ~/.bashrc
添加环境变量
export TVM_HOME=/home/code/tvm
export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}
这里的/home/code/tvm就是你TVM代码所在的位置。
保存后,让环境变量生效
source ~/.bashrc
6. 安装python依赖项
pip3 install --user numpy decorator attrs tornado psutil xgboost cloudpickle
7. 检查TVM是否安装成功
python3
import tvm # 如果显示没有tvm模块,说明安装失败
tvm.__version__ # 若成功会显示tvm版本号