[翻译]从源代码安装 — tvm 0.7.dev1文档

创建时间: 2020-05-20 23:31
更新时间: 2020-06-02 13:41
来源: https://tvm.apache.org/docs/install/from_source.html

从源安装¶

本页提供有关如何在各种系统上从头构建和安装TVM软件包的说明。它包括两个步骤:

  1. 第一个构建从C ++代码的共享库(libtvm.so为Linux,libtvm.dylib为MacOS和libtvm.dll为视窗)。
  2. 语言包(例如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++abiLDFLAGS,否则会出现链接错误。
    • 更改为启用CUDA后端。其他后端和库(OpenCL,RCOM,METAL,VULKAN等)也是如此。set(USE_CUDA OFF)``set(USE_CUDA ON)
  • 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)
  • 然后,我们可以构建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库¶

安装GTEST之后,C ++测试可以建成并开始使用./tests/scripts/task_cpp_unittest.sh,或只是内置。make cpptest