[翻译]从源代码安装 — tvm 0.7.dev1文档
创建时间: | 2020-05-20 23:31 |
---|---|
更新时间: | 2020-06-02 13:41 |
来源: | https://tvm.apache.org/docs/install/from_source.html |
从源安装¶
本页提供有关如何在各种系统上从头构建和安装TVM软件包的说明。它包括两个步骤:
- 第一个构建从C ++代码的共享库(libtvm.so为Linux,libtvm.dylib为MacOS和libtvm.dll为视窗)。
- 语言包(例如Python包)的设置。
首先,请从下载页面下载tvm源代码。
开发人员:从Github获取资源¶
您还可以选择从github克隆源存储库。与options一起克隆子模块很重要--recursive
。
git clone —recursive https://github.com/apache/incubator-tvm tvm
对于使用github工具的Windows用户,您可以打开git shell,然后键入以下命令。
git submodule init
git submodule update
建立共享库¶
我们的目标是建立共享库:
- 在Linux上,目标库是libtvm.so,libtvm_topi.so
- 在macOS上,目标库为libtvm.dylib,libtvm_topi.dylib
- 在Windows上,目标库是libtvm.dll,libtvm_topi.dll
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
最低建筑要求是
- 最新的C ++编译器支持C ++ 14(g ++-5或更高版本)
- CMake 3.5或更高
- 我们强烈建议使用LLVM进行构建以启用所有功能。
- 如果要使用CUDA,则需要CUDA工具箱版本> = 8.0。如果要从旧版本升级,请确保清除旧版本并在安装后重新启动。
我们使用cmake来构建库。TVM的配置可以通过config.cmake进行修改。
- 首先,检查系统中的cmake。如果没有cmake,可以从官方网站获取最新版本
- 首先创建一个构建目录,将复制
cmake/config.cmake
到该目录。
mkdir build
cp cmake/config.cmake build
- 编辑
build/config.cmake
以自定义编译选项- 在macOS上,对于某些版本的Xcode,您需要添加
-lc++abi
LDFLAGS,否则会出现链接错误。 - 更改为启用CUDA后端。其他后端和库(OpenCL,RCOM,METAL,VULKAN等)也是如此。
set(USE_CUDA OFF)``set(USE_CUDA ON)
- 在macOS上,对于某些版本的Xcode,您需要添加
- TVM可选地取决于LLVM。需要LLVM的CPU代码生成器需要LLVM。
- 使用LLVM进行构建需要LLVM 4.0或更高版本。请注意,默认apt中的LLVM版本可能低于4.0。
- 由于LLVM需要很长时间才能从源代码构建,因此您可以从LLVM Download Page下载 LLVM的预构建版本 。
- 解压缩到某个位置,进行修改
build/config.cmake
以添加set(USE_LLVM /path/to/your/llvm/bin/llvm-config)
- 您还可以直接设置并让cmake搜索可用的LLVM版本。
set(USE_LLVM ON)
- 解压缩到某个位置,进行修改
- 您还可以使用LLVM Nightly Ubuntu Build
- 请注意,apt-package会附加
llvm-config
版本号。例如,设置是否安装了4.0软件包set(LLVM_CONFIG llvm-config-4.0)
- 请注意,apt-package会附加
- 使用LLVM进行构建需要LLVM 4.0或更高版本。请注意,默认apt中的LLVM版本可能低于4.0。
- 然后,我们可以构建tvm和相关库。
cd build
cmake ..
make -j4
- 您也可以使用Ninja构建系统代替Unix Makefile。它的构建比使用Makefile更快。
cd build
cmake .. -G Ninja
ninja
如果一切顺利,我们可以转到Python软件包安装
在Windows上构建¶
使用cmake通过MSVC构建TVM支持。最低要求的VS版本是Visual Studio Community 2015 Update 3。为了使用cmake生成VS解决方案文件,请确保已在路径中然后从TVM目录中添加了最新版本的cmake:
mkdir build
cd build
cmake -G “Visual Studio 14 2015 Win64” -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES=”Release” ..
这将使用MSVC 14 64位生成器生成VS项目。在生成目录中打开.sln文件,然后使用Visual Studio生成。为了在Windows中使用LLVM进行构建,您将需要从源代码构建LLVM。
建立ROCm支持¶
当前,ROCm仅在linux上受支持,因此所有说明都在考虑linux的情况下编写。
- 设置,将ROCM_PATH设置为正确的路径。
set(USE_ROCM ON)
- 您需要首先从ROCm安装HIP运行时。确保安装系统中已安装ROCm。
- 安装LLVM(v6.0.1)和LLD的最新稳定版本,确保
ld.lld
可通过命令行使用。
Python软件包安装¶
TVM套餐¶
python软件包位于tvm / python上。 有两种安装软件包的方法:
方法1
建议可能更改代码的开发人员使用此方法。
设置环境变量PYTHONPATH来告诉python在哪里可以找到该库。例如,假设我们在主目录〜上 克隆了tvm。然后我们可以在〜/ .bashrc中添加以下行。一旦您拉出代码并重建项目,更改将立即反映出来(无需再次调用)setup
export TVMHOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/python:$TVM_HOME/topi/python:${PYTHONPATH}
方法二
通过setup.py安装TVM python绑定:
# 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 ../..
Python依赖项¶
- 必需的依赖项:
pip3 install —user numpy decorator attrs
- 如果要使用RPC跟踪器
pip3 install —user tornado
- 如果要使用自动调整模块
pip3 install —user tornado psutil xgboost
- 如果要构建tvm来编译模型,则必须使用Python 3并运行以下命令
sudo apt install antlr4
pip3 install —user mypy orderedset antlr4-python3-runtime
安装Contrib库¶
- NNPACK贡献安装
启用C ++测试¶
我们使用Google Test来驱动TVM中的C ++测试。安装GTest的最简单方法是从源代码安装。
git clone https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
make install
安装GTEST之后,C ++测试可以建成并开始使用./tests/scripts/task_cpp_unittest.sh
,或只是内置。make cpptest