TVM:源码编译安装
TVM:Linux源碼編譯安裝
筆者環境:
OS:Ubuntu 18.04
CMake:3.10.2
gcc:7.5.0
cuda:11.1
編譯安裝過程總覽
本文將簡介 tvm 的編譯安裝過程,包含兩個步驟:
源碼獲取
官網教程提供了兩種源碼獲取方式:
通過下載頁面直接下載
通過 github 倉庫來下載
git clone --recursive https://github.com/apache/tvm tvm注意一定要有 --recursive 參數,保證子模塊正常下載。
構建共享庫
構建 tvm 共享庫,在我們 Linux 系統上即 libtvm.so 和 libtvmruntime.so 。也可以只構建運行時庫 libtvmruntime.so ,在要被部署的遠程邊緣設備(如樹莓派、移動手機等)上,我們通常只需要安裝運行時庫。這也會在后面介紹遠程邊緣部署時提到??傊F在,在我們的主機上,我們先完全安裝 tvm。
準備工作
官方給出的安裝 tvm 的最小要求如下:
- 一個支持C++ 14 的編譯器 (如g+±5 or higher)
- CMake 3.5 or higher
- 強烈建議安裝 llvm
- Python 3.7 / 3.8 (Python 3.9 暫不支持)
- 如果要使用CUDA,CUDA toolkit version >= 8.0
安裝最小依賴
安裝上述最小要求的命令(ubuntu / debian):
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檢查一下CMake,如果沒有的話,到該下載頁面下載。
llvm
llvm 雖然不是強制要求,但我們通常都是需要的,強烈建議大家安裝。過程也很簡單,從這個下載頁面選擇適合我們設備和系統的 pre-built 版本(壓縮文件 .xz)下載并解壓即可:
wget http://releases.llvm.org/x.x.x/clang+llvm-x.x.x-x86_64-linux-gnu-ubuntu-xx.xx.tar.xztar -xf clang+llvm-x.x.x-x86_64-linux-gnu-ubuntu-xx.xx.tar.xz解壓完成后進入解壓目錄,找到 bin 目錄下的 llvm-config 文件,記下其路徑,一會兒要用。
開始編譯構建
準備工作完成之后我們開始編譯構建。
首先進入到我們剛才下載的 tvm 源碼目錄下,新建 build 目錄,將 cmake 目錄下的 config.cmake 拷貝的 build 目錄下:
cd tvm mkdir build cp cmake/config.cmake build/然后按需修改 config.cmake 文件:
-
如果要時候用某些后端和庫(如CUDA, OpenCL, RCOM, METAL, VULKAN,等)。這里以CUDA為例,將 set(USE_CUDA OFF) 修改為 set(USE_CUDA ON),其他庫同理。
-
為了幫助調試,需要啟用嵌入式圖形執行器和調試功能 set(USE_GRAPH_DEBUG ON) 、 set(USE_PROFILER ON)
-
如果要調試 IR,要啟用 set(USE_RELAY_DEBUG ON) ,并設置環境變量:
export TVM_LOG_DEBUG="ir/transform.cc=1;relay/ir/transform.cc=1" -
使用 LLVM,這里要使用到我們剛才記下的 LLVM 路徑了,設置 set(USE_LLVM /path/to/your/llvm/bin/llvm-config)
config.cmake 修改完成后,我們開始構建 tvm 及相關庫:
cd build cmake .. make -j4Python 包
Python 會根據環境變量 PYTHONPATH 尋找庫文件,在 ~/.bashrc中設置這個環境變量,其中 /path/to/tvm 是上文 tvm 目錄的絕對路徑。
export TVM_HOME=/path/to/tvm export PYTHONPATH=$TVM_HOME/python:${PYTHONPATH}python 依賴安裝
-
必需依賴
pip3 install --user numpy decorator attrs -
如果要使用 RPC 追蹤器
pip3 install --user tornado -
如果要使用 auto-tuning 模塊
pip3 install --user tornado psutil xgboost cloudpickle
測試
這里我們用 Google Test 來進行測試,首先先安裝 GTest(不要和 tvm 裝在一起,建議另找一個目錄):
git clone https://github.com/google/googletest cd googletest mkdir build cd build cmake -DBUILD_SHARED_LIBS=ON .. make sudo make install安裝完成后,在 tvm 安裝目錄下執行測試:
./tests/scripts/task_cpp_unittest.sh順利完成無報錯的話,即告 tvm 安裝完成。
Ref:
https://tvm.apache.org/docs/install/from_source.html#developers-get-source-from-github
總結
以上是生活随笔為你收集整理的TVM:源码编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泰来小区成都北改会拆吗五块石泰来小区在北
- 下一篇: 服务器修改地址,服务器修改管理地址