0 安装环境和资源
- win10,64位
- RTX3090
- visual studio 2022社区版
- windows SDK 10.2.2200.832(不清楚这个有没有影响)
- tvm资源:(1) https://tvm.apache.org/download(0.13.0)或者 (2) https://github.com/apache/tvm 下载 main.
1 用conda创建python虚拟环境
- 下载tvm,方式1:https://tvm.apache.org/download,点击
apache-tvm-src-v0.13.0.tar.gz
,然后再点击https://dlcdn.apache.org/tvm/tvm-v0.13.0/apache-tvm-src-v0.13.0.tar.gz
下载压缩包。方式2:https://github.com/apache/tvm
- 用conda创建python虚拟环境,我命名为
tvm-build
。借鉴了此[文献]的步骤。将压缩包解压后放在文件夹:E:\ProgramData\tvm_tools\tvm
,打开 anaconda prompt(anaconda3),分别输入E:
和cd E:\ProgramData\tvm_tools\tvm\conda
,然后执行下列命令创建环境。
# 打开 anaconda prompt(anaconda3),输入下列命令
conda env create --tvm-build conda/build-environment.yaml # 创建环境
conda activate tvm-build # 激活环境
2 编译tvm
此步骤可参考如下参考文献 [2] [3] 。
- 创建
build
文件夹,即E:\ProgramData\tvm_tools\tvm\build
。如果已经有build文件夹且里面有内容,可以将内容删除或者仅仅保留config.cmake
(如果有)。 - 回到根目录E:\ProgramData\tvm_tools\tvm,复制config.cmake到build文件夹,命令为:
copy cmake\config.cmake build\
。注意,参考文献[2]的斜杠是错误的,必须为“\
”。此时build文件夹,已经有config.cmake
文件。 - 执行:
cd build
,切换回到build文件夹,执行命令:cmake -A x64 -Thost=x64 ..
,完成编译tvm。 - 执行:
cd ..
,回到根目录E:\ProgramData\tvm_tools\tvm,执行命令:
cmake --build build --config Release -- /m
成功后,在文件夹E:\ProgramData\tvm_tools\tvm\build\Release出现tvm.dll等文件表示安装成功。
- 安装tvm到虚拟环境中。执行命令,
cd E:\ProgramData\tvm_tools\tvm-main\python
,进入根目录下python文件夹,执行命令:python setup.py install
。 - 检查安装成功,执行命令:
python
,然后输入import tvm
,成功后的结果如下所示。
3 常见错误
- 编译tvm时,如果缺乏相应的依赖项,执行pip install xxx 或者 conda install xxx(xxx表示缺乏的依赖项)升级即可。
- 另外一种安装方式:
编译 llvm+编译tvm
的方式,例如文献[2],我花了5天,总是各种报错
,例如缺乏libxml2.lib
(一直无法解决)、tvm/3rdparty缺乏文件、编译tvm时无法编译tvm/ADT/xx.h
等一系列头文件等。 E:\ProgramData\tvm_tools\tvm-main\include\tvm\meta_schedule\
下三个头文件:search_strategy.h
,space_generator.h
和task_scheduler.h
总是提示警告:warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
。是因为在注释中有部分编码错误,我直接把该部分的注释删除了,其实不删除好像也没有影响。
参考文献
[1] TVM Windows conda 安装,https://blog.csdn.net/qq_43780964/article/details/123281175
[2] TVM在Windows10下编译安装,https://blog.csdn.net/linshu1994/article/details/124307331