【开发环境】Windows下搭建TVM编译器

关于搭建TVM编译器的官方文档:Install from Source — tvm 0.14.dev0 documentation (apache.org)

1. 安装Anaconda

首先我们需要安装Anaconda,因为其中包含着我们所需要的各类依赖:

进入Anaconda官网https://www.anaconda.com/products/distribution,下载Windows版本,下载完成后运行.exe,可以更改安装路径(如果安装路径不是C盘可能需要一点点额外的步骤,这个后面会提到),基本一路Next就可以了。需要注意的是,一定要把将Anaconda加入PATH勾选上,这样就可以节省配置Anaconda环境变量的步骤。

最终安装好Anaconda,可以在电脑应用菜单这里找到对应的cmd终端入口和powershell入口:

2. 编译LLVM

接下来是编译LLVM,简便行事我们可以使用已经手动编译好的库,进入https://winlibs.com/找到包含LLVM的包:

下载解压到任意目录里就行,最后把其中bin目录路径写入环境变量的PATH中,进入Anaconda的cmd终端中输入如下命令:

 llvm-config --libdir

不报错并显示对应的库目录路径意味着前面的步骤都完成了,下面就开始搭建TVM。

3. 获取TVM源码

从github上获取最新版的TVM克隆到本地文件夹tvm中,记住务必要克隆而非直接下载ZIP解压否则后面编译会报错

 $ git clone --recursive http://github.com/apache/tvm tvm

新建一个build文件夹,从文件夹cmake中复制一份config.cmake拷贝到build文件夹中:

 $ cd tvm
 $ mkdir build
 $ cp cmake/config.cmake build

当然源码获取并没有这么简单,这也是我踩的一个大坑了,如果现在查看build里的一些文件夹,你会发现很多是空的,这是因为它们是子仓库所以并没有跟随着一起将源码克隆到本地,反而只是将一个jit链接克隆了下来,我们接下来需要补充这一部分代码,进入github仓库的build文件夹下,将有蓝色链接(含有子仓库)的源码下载到本地,替换原来残缺的部分:

4. 构建虚拟环境

在Anaconda终端中切换到tvm的文件夹目录下,注意:如果你将Anaconda放在了非系统盘,那么你需要使用管理员身份进入终端。

使用如下命令构建并进入tvm-build的虚拟环境:

 # Create a conda environment with the dependencies specified by the yaml
 conda env create --file conda/build-environment.yaml
 # Activate the created environment
 conda activate tvm-build

这个过程会比较长,大概10分钟左右。

5. 使用cmake生成.dll库

打开build目录下的config.cmake文件,将USE_LLVM设为ON,修改完后保存:

进入build目录调用cmake进行生成:

 cd build
 cmake -A x64 -Thost=x64 ..
 cd ..
 cmake --build build --config Release -- /m

这里可能会有报错"No CMAKE_C_COMPILER could be found",意思就是没有编译器,我们可以去下载Visual Studio解决这个问题,如果你已经安装了Visual Studio但仍然存在这个问题,那你需要去Visual Studio Installer里下载安装一个SDK,这里我推荐最新版的windows 10 SDK。

这个步骤也要等待蛮久的,大概半小时(而且非常占用CPU,电脑风扇起飞),可以看到中途会有很多Warnings,不必理会不是Error就知足吧Orz):

最终可以看到在tvm\build\Release目录下生成了tvm.dll的链接库:

6. python依赖库的安装

使用如下命令直接安装即可:

 pip3 install typing_extensions numpy decorator attrs
 pip3 install tornado psutil xgboost cloudpickle
 pip3 install ml_dtypes

7. 将TVM安装到python环境

这一步看其他大佬的博客都是直接配置PYTHONPATH环境变量,但实际上我们在Anaconda终端直接运行如下脚本即可完成:

 cd python
 python setup.py install

运行完毕,可以打开python的IDLE输入import tvm来简单测试一下我们搭建的TVM是否可用:

如上所示,没有报错基本就成功了。

当然如果不习惯用IDLE,也可以使用VSCode、PyCharm等代码编辑器,例如在VSCode的设置的命令面板中输入:

python:select interpreter

更换python解释器为我们刚刚添加tvm包的解释器:

如下所示,没有报错:

至此,我们的TVM编译器搭建就结束了,篇幅不长但是却浓缩了我踩坑的漫长经历QAQ

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: TVM编译器TDA4是针对德州仪器(Texas Instruments)公司的TDA4芯片设计的。TVM是一个深度学习优化器和编译器的开源项目,它的目标是提供一个统一的、高效的方式来优化和部署深度学习模型。TVM能够将深度学习模型转换为高度优化的代码,以提高在边缘设备上的性能和功耗效率。 TDA4芯片是德州仪器公司的一款基于Arm Cortex-A72和Cortex-M4核心的集成芯片,主要用于高级驾驶辅助系统(ADAS)和自动驾驶汽车等应用。TDA4芯片具有强大的计算能力和丰富的外设接口,因此需要一种高效的编译器来优化和部署复杂的深度学习算法。 TVM编译器可以将深度学习模型转换为TDA4芯片所需的代码,从而充分利用芯片的计算能力。编译器会对模型进行优化,包括自动图优化、内核融合、量化和布局等。这些优化技术能够减少计算和存储的复杂性,提高模型在TDA4芯片上的执行效率。 使用TVM编译器进行深度学习模型的编译能够带来多方面的好处。首先,优化后的模型可以更快地执行,提高系统的实时性能。其次,编译器能够自动进行硬件和算法的匹配,降低了开发人员的工作量。另外,TVM的开放性和活跃的社区使得它能够持续更新和改进,适应不同硬件平台和算法的需求。 总而言之,TVM编译器TDA4是为提高TDA4芯片上深度学习模型的性能和功耗效率而设计的。它能够将深度学习模型转换为优化后的代码,从而充分利用TDA4芯片的计算能力。使用TVM编译器能够加速深度学习应用的部署过程,并提供高效的解决方案。 ### 回答2: TVM编译器是一种用于将深度学习模型优化和编译到不同硬件平台的开源编译器TVM编译器的目标是提高深度学习模型在不同硬件上的性能和效率。 TVM编译器支持多种硬件平台,其中包括TDA4芯片。TDA4芯片是一款基于Arm架构的嵌入式处理器,广泛应用于自动驾驶和智能交通等领域。TDA4芯片具有高性能和低功耗的特点,适用于处理复杂的深度学习模型。 TVM编译器通过将深度学习模型转换为高效的计算图表达,从而实现模型的优化和编译。它采用了多种编译技术,例如图优化、内核融合和自动并行化,以提高模型的执行效率,并充分发挥硬件平台的性能。 在TDA4芯片上使用TVM编译器可以带来许多好处。首先,它可以充分利用TDA4芯片的计算能力和存储资源,提高模型的推理速度和响应时间。其次,TVM编译器可以自动地将模型转换为适合TDA4芯片的代码,并利用硬件特性进行优化,从而减少计算和内存消耗。此外,TVM编译器还提供了灵活的接口和工具,使开发者能够方便地部署和调试深度学习模型。 总而言之,TVM编译器是一种强大的工具,可以将深度学习模型优化和编译到TDA4芯片等不同硬件平台上,提高模型的性能和效率。通过使用TVM编译器,开发者可以更好地利用TDA4芯片的计算能力,实现更快速、高效的深度学习应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mitch311

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值