神经网络编译器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了