神经网络编译器TVM安装

神经网络编译器TVM安装👍

依赖安装

支持 C++ 14(g++-5 或更高)的最新 C++ 编译器
CMake 3.5 或更高版本
强烈建议使用 LLVM 构建以启用所有功能。
如果要使用 CUDA,则需要 CUDA 工具包版本 >= 8.0。如果您是从旧版本升级,请确保清除旧版本并在安装后重新启动。

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

下载tvm

git clone --recursive https://github.com/apache/tvm tvm
mkdir build
cp cmake/config.cmake build

安装LLVM

下载连接:https://releases.llvm.org/download.html
解压到自定义路径,然后添加 $LLVM_ROOT的bin到PATH

修改config.cmake

set(USE_CUDA ON)
set(USE_GRAPH_RUNTIME_DEBUG ON)
set(USE_RELAY_DEBUG ON)
set(USE_NNPACK ON)
set(USE_CUDNN ON)
set(USE_CUBLAS ON)
set(USE_LLVM $ENV{LLVM_ROOT}/bin/llvm-config)

添加环境变量,在$USER/.bashrc中添加

export TVM_LOG_DEBUG=1

安装NNPACK Contrib

安装ninja
git clone git://github.com/ninja-build/ninja.git
cd ninja
./configure.py --bootstrap

添加环境变量,在$USER/.bashrc中添加

export PATH=$PATH:[your ninja path]/ninja
安装NNPACK
git clone --recursive https://github.com/Maratyszcza/NNPACK.git
cd NNPACK
# Add PIC option in CFLAG and CXXFLAG to build NNPACK shared library
sed -i "s|gnu99|gnu99 -fPIC|g" CMakeLists.txt
sed -i "s|gnu++11|gnu++11 -fPIC|g" CMakeLists.txt
mkdir build
cd build
# Generate ninja build rule and add shared library in configuration
cmake -G Ninja -D BUILD_SHARED_LIBS=ON ..
ninja
sudo ninja install
# Add NNPACK lib folder in your ldconfig
echo "/usr/local/lib" > /etc/ld.so.conf.d/nnpack.conf
sudo ldconfig

安装tvm

cd [your tvm folder]/build
cmake ..
make -j[your need system threads]

安装tvm的Python包

方法一
对于可能更改代码的开发人员,建议使用此方法。

设置环境变量PYTHONPATH来告诉 python 在哪里可以找到库。例如,假设我们在目录/path/to/tvm上克隆了tvm然后我们可以在~/.bashrc中添加以下行。拉取代码并重新构建项目后,更改将立即反映出来(无需setup再次调用)

export TVM_HOME=/path/to/tvm
export PYTHONPATH=$TVM_HOME/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 ..

笔者使用的是第一种方法
安装完成后,测试一下

python -c "import tvm"

如果大家有什么问题可以联系我或者到tvm论坛讨论搜索https://discuss.tvm.apache.org/

❗ 注意,新版本的tvm已经没有tvm.contrib.graph_executor了,已经替换成tvm.contrib.graph_runtime,可以直接用graph_runtime替换graph_executor了

posted @ 2021-06-17 17:06  nanmi  阅读(669)  评论(0编辑  收藏  举报