关于TVM在Windows上的安装教程网上非常少,原因是TVM主要是针对Linux开发的,目前在Windows运行一些关于TVM的代码会有报错的现象,同时最近,TVM官方去除了之前一直用的中继编译器NNVM,把它的功能全部整合到了TVM的函数中,具体可查看官网:official installation tutorial。
目标平台:
windows 10 x64。
安装必备(请自行安装):
下载安装cmake,要求3.5以上版本。
下载安装visual studio,建议vs2017。
需要支持cuda的话,请装10.0以上的。
1.安装LLVM+clang
下载地址:http://releases.llvm.org/download.html
找到LLVM 8.0.1(我装的是这个版本)
Sources节点下面下载LLVM source code和Clang source code。
Pre-Built Binaries节点下面下载Windows (64-bit)。
1.1 Pre-Built Binaries 具体安装
直接运行这个安装包,按照他的步骤来,中途会有一个问你是否添加到系统路径,你填第二个,即添加到系统路径并所有人都可以使用。安装完成后,把LLVM的路径,比如我的是C:\Program Files\LLVM\bin (我把这个预编译的LLVM装在C盘),再添加到系统路径下(跟之前的不同),具体如下图。
这两步添加完,记得 确定 后再退出(等下编译不通过可以看看路径添加的对不对,这个很重要)。
然后打开CMD(命令行),输入clang -v,出现下图就表示这个预编译LLVM安装成功。
1.2 LLVM 源码 具体安装
Clang源码下载解压文件夹重命名为clang,跟llvm源码解压目录平级。
在llvm源码目录下新建build文件夹,通过cmd进入build文件
运行cmake -G "Visual Studio 15 2017 Win64" .. -Thost=x64 -DLLVM_ENABLE_PROJECTS=clang
如果没有意外,打开build文件夹下的LLVM.sln,确认编译的平台和版本release x64,然后右击生成 Libraries和Tools下面的所有项目。
这个编译时间很长大约30+分钟,最后如果显示生成成功,错误那里显示0个就表示编译OK了。
在build\lib\cmake\llvm有tvm需要的cmake文件(注1)。
在build\Release\bin下面有各种可能用到的工具,可以加到系统PATH。
2.安装TVM
请参考官方文档,运行下面的命令。
git clone --recursive https://github.com/dmlc/tvm
git submodule init
git submodule update
如果你直接从GitHub上把整个安装包下下来,编译的时候会有问题,需要通过git下载(git下载方法请自行百度哈)才行,而且上边3句话全部要在命令行中运行才行.
git下载下载完后一般放在C盘,我的路径如下:
修改tvm源码下面的CMakeLists.txt,把USE_LLVM 设置成 ON,也可以根据需要打开其他功能。
在tvm下新建build文件夹,通过cmd进入build文件
运行cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CONFIGURATION_TYPES=Release .. -DLLVM_DIR=E:/my_tvm/llvm/build/lib/cmake/llvm
其中-DLLVM_DIR是由上一步生成的,查看注1。
打开tvm.sln, 确认编译的平台和版本release x64,选择ALL_BUILD,右击生成
没有意外的话,编译成功,然后cmd分别到tvm/python,tvm/topi/python,运行python setup.py install,这两步是真正的安装,之前的只是编译。
安装其他package(可选)
pip install numpy decorator attrs tornado psutil xgboost mypy orderedset antlr4-python3-runtime
运行python
import tvm
没有任何错误信息,安装成功。