TVM
文章平均质量分 85
HyperAI超神经
链接人工智能新场景
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【TVM教程】设计与架构
IRModule:包含 relay.Function 和 tir.PrimFuncruntime.Module:包含 runtime.PackedFunc编译基本是在进行关键数据结构之间的转换。relay/transform 和 tir/transform 是确定性的基于规则的转换meta-schedule 则包含基于搜索的转换最后,编译流程示例只是 TVM 堆栈的一个典型用例。将这些关键数据结构和转换提供给 Python 和 C++ API。原创 2025-12-29 18:35:19 · 822 阅读 · 0 评论 -
【TVM 教程】处理 TVM 错误
恭喜!你找到了这篇文档。下面是一些关于如何理解这些错误信息以及遇到错误时可以采取哪些措施的提示。原创 2025-12-26 18:38:42 · 401 阅读 · 0 评论 -
【TVM 教程】设置 RPC 系统
远程过程调用(RPC)是 Apache TVM 中非常重要和有用的功能,它允许我们在真实硬件上运行已编译好的神经网络(NN)模型,无需手动操作远程设备,输出结果会通过网络自动返回。通过省去一些人工操作,比如将输入数据转储到文件、将导出的神经网络模型拷贝到远程设备、设置设备用户环境、将输出结果拷贝回主机开发环境,RPC 极大地提升了开发效率。此外,由于只有已编译神经网络模型的执行部分运行在远程设备上,所有其他部分都运行在主机开发环境中,因此可以使用任何 Python 包来完成预处理和后处理工作。原创 2025-12-17 17:14:45 · 399 阅读 · 0 评论 -
【TVM 教程】Python 目标参数化
对于任何支持的开发环境,TVM 都应该生成数值正确的结果。因此,在编写验证数值输出的单元测试时,这些单元测试应在所有受支持的开发环境上执行。由于这是一个非常常见的使用场景,TVM 提供了辅助函数来参数化单元测试,使它们可以在所有已启用且具有兼容设备的目标上运行。测试套件中的一个 Python 函数可以展开成多个参数化的单元测试,每个测试针对一个单一的目标设备。测试必须存在于已传递给 pytest 的文件或目录中。原创 2025-12-17 17:01:33 · 400 阅读 · 0 评论 -
【TVM 教程】交叉编译与 RPC
在远程设备上设置 RPC 服务器;在本地设置目标设备的交叉编译配置;通过 RPC API 上传并远程运行内核程序。可右键另存为下载。原创 2025-12-17 16:37:37 · 618 阅读 · 0 评论 -
【TVM 教程】优化大语言模型
我们定义了一系列用于优化模型的传递过程(pass)。这个优化流程是专门为大语言模型(LLMs)设计的。):# 第一阶段:针对高层操作图的优化# 可以启用 cublas以进一步优化# 第二阶段:向 TIR(张量中间表示)下沉,继承 TVM Relax 的官方 "zero" 流程# 第三阶段:对 TIR 进行优化# 第四阶段:底层优化),# 第五阶段:转换为虚拟机字节码return mod。原创 2025-11-21 19:13:13 · 890 阅读 · 0 评论 -
【TVM 教程】自定义优化
TVM 先已更新到 0.21.0 版本,TVM 中文文档已经和新版本对齐。Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →Apache TVM 的一个主要设计目标是便于自定义优化流程,无论是用于科研探索还是工程开发,都可以灵活迭代优化过程。原创 2025-10-29 22:35:15 · 394 阅读 · 0 评论 -
【TVM 教程】端到端优化模型
TVM 先已更新到 0.21.0 版本,TVM 中文文档已经和新版本对齐。Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →本教程演示了如何使用 Apache TVM 对机器学习模型进行优化。我们将使用来自 PyTorch 的预训练 ResNet-18 模型,并通过 TVM 的 Relax API 对其进行端到端优化。请注意,默认的端到端优化可能不适用于复杂模型。原创 2025-10-17 19:19:35 · 359 阅读 · 0 评论 -
【TVM 教程】设置 RPC 系统
Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →远程过程调用(RPC)是 Apache TVM 的一个非常重要且有用的功能,它允许我们在实际硬件上运行编译后的神经网络(NN)模型,而无需触及远程设备,输出结果将通过网络自动传回。通过消除手动工作,如将输入数据转储到文件、将导出的 NN 模型复制到远程设备、设置设备用户环境以及将输出结果复制到主机开发环境,RPC 极大地提高了开发效率。原创 2025-09-24 17:48:41 · 984 阅读 · 0 评论 -
【TVM 教程】Python Target 参数化
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →远程过程调用(RPC)是 Apache TVM 的一个非常重要且有用的功能,它允许我们在实际硬件上运行编译后的神经网络(NN)模型,而无需触及远程设备,输出结果将通过网络自动传回。通过消除手动工作,如将输入数据转储到文件、将导出的 NN 模型复制到远程设备、设置设备用户环境以及将输出结果复制到主机开发环境,RPC 极大地提高了开发效率。原创 2025-09-21 20:17:35 · 796 阅读 · 0 评论 -
【TVM 教程】Python Target 参数化
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-08-25 10:23:19 · 1011 阅读 · 0 评论 -
【TVM 教程】向 TVM 中添加 Codegen
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-08-20 10:26:58 · 960 阅读 · 0 评论 -
【TVM 教程】向 Relay 中添加 Compiler Pass
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-08-11 15:27:40 · 879 阅读 · 0 评论 -
【TVM 教程】向 Relay 中添加算子
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-08-06 10:37:34 · 857 阅读 · 0 评论 -
【TVM 教程】调试 TVM
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-07-28 10:16:01 · 384 阅读 · 0 评论 -
【TVM 教程】TVM 代码库实例讲解
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。原创 2025-07-21 11:03:32 · 780 阅读 · 0 评论 -
【TVM 教程】FAQ
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →。原创 2025-07-16 10:23:03 · 515 阅读 · 0 评论 -
【TVM 教程】如何处理 TVM 报错
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。原创 2025-07-07 10:36:05 · 376 阅读 · 0 评论 -
【TVM 教程】PAPI 入门
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-06-30 10:31:02 · 234 阅读 · 0 评论 -
【TVM 教程】在 TVM 中使用 Bring Your Own Datatypes
接下来使用自定义数据类型进行中间计算。使用与上面相同的输入变量x和y,但在添加x + y之前,首先通过调用将x和y转换为自定义数据类型。注意如何指定自定义数据类型:使用特殊的语法来表示。此外,注意数据类型后面的「32」:这是自定义数据类型的位宽,告诉 TVMmyfloat的每个实例都是 32 位宽。try:# 打印最后一行错误尝试生成此程序会从 TVM 引发错误。TVM 不知道如何创造性地处理所有自定义数据类型!注意,类型代码 150 目前由用户手动选择。参阅中的。原创 2025-06-23 15:27:13 · 891 阅读 · 0 评论 -
【TVM 教程】如何使用 TVM Pass Instrument
可以使用装饰器创建自定义 instrument 类。创建一个工具类(计算每次 Pass 引起的每个算子出现次数的变化)。可以在 Pass 之前和之后查看op.name来找到每个算子的名称,从而计算差异。# Pass 可以嵌套。# 使用堆栈来确保得到之前/之后正确的 pairs。# 弹出最新记录的 Pass。# 只记导致差异的 Pass。"""return ["""ret = {}else:# 某些 CallNode 可能没有“名称”,例如 relay.Functionreturn。原创 2025-06-16 17:23:44 · 972 阅读 · 0 评论 -
【TVM 教程】如何使用 TVM Pass Infra
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →<https://tvm.hyper.ai/>原创 2025-06-09 14:03:29 · 780 阅读 · 0 评论 -
【TVM 教程】编写自定义 Pass
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-06-03 10:53:25 · 878 阅读 · 0 评论 -
【TVM 教程】开发环境中加入 microTVM
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-05-26 11:44:13 · 1146 阅读 · 0 评论 -
【TVM 教程】创建使用 microTVM 的 MLPerfTiny 提交
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/原创 2025-05-19 10:41:16 · 1148 阅读 · 0 评论 -
【TVM 教程】microTVM PyTorch 教程
该教程展示了如何使用 PyTorch 模型进行 microTVM 主机驱动的 AOT 编译。此教程可以在使用 C 运行时(CRT)的 x86 CPU 上执行。原创 2025-05-12 10:52:16 · 676 阅读 · 0 评论 -
【TVM 教程】使用 TVMC Micro 执行微模型
本教程介绍了如何为微型设备编译一个微模型,并在 Zephyr 平台上构建一个程序,来执行这个模型,烧录程序,并用 tvmc micro 命令来执行所有模型。在进行本教程之前你需要安装 python 和 Zephyr 依赖原创 2025-05-08 14:24:02 · 645 阅读 · 0 评论 -
【TVM教程】在 Arduino 上为 microTVM 训练视觉模型
构建物联网设备时,通常想让它们能够看到并理解它们周围的世界。可以采取多种形式,但通常设备也会想知道某种物体是否在其视野中。例如,安全摄像头可能会寻找人,因此它可以决定是否将视频保存到内存中。红绿灯可能会寻找汽车,这样它就可以判断哪个信号灯应该首先改变。或者森林相机可能会寻找一种动物,从而估计动物种群的数量。为使这些设备价格合理,我们希望为这些设备配置一个低成本处理器,如nRF52840(在 Mouser 上每个售价 5 美元)或RP2040(每个只需 1.45 美元)。原创 2025-04-27 16:52:58 · 980 阅读 · 0 评论 -
【TVM教程】microTVM TFLite 指南
接下来为 Relay 创建一个构建配置,关闭两个选项,然后调用 relay.build,为选定的 TARGET 生成一个 C 源文件。当在与主机( Python 脚本执行的位置)相同架构的模拟 target 上运行时,为 TARGET 选择下面的「crt」,选择 C Runtime 作为 RUNTIME ,并选择适当的单板/虚拟机来运行它(Zephyr 将创建基于 BOARD 的正确 QEMU 虚拟机)。# 运行于物理硬件时,选择描述对应硬件的 TARGET 和 BOARD。原创 2025-04-18 17:01:21 · 628 阅读 · 0 评论 -
【TVM教程】在支持 CMSIS-NN 的 Arm(R) Cortex(R)-M55 CPU 和 Ethos(TM)-U55 NPU 裸机上运行 TVM
Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →本节使用示例说明如何使用 TVM 在带有 CMSIS-NN 的 Arm® Cortex®-M55 CPU 和 Ethos™-U55 NPU 的裸机上运行模型。Cortex®-M55 是一款用于嵌入式设备的小型低功耗 CPU。CMSIS-NN 是针对 Arm® Cortex®-M CPU 优化的内核集合。原创 2025-04-09 15:54:45 · 1747 阅读 · 0 评论 -
【TVM教程】使用 TVMC Micro 执行微模型
首先在 Relay 中定义一个要在设备上执行的模型,然后从 Relay 模型中创建一个 IRModule,并用随机数填充参数。data,weight,下面定义描述执行环境的 TVM target,它与其他 microTVM 教程中的 target 定义非常相似。不同之处是用 C Runtime 来生成模型。在物理硬件上运行时,选择一个 target 和一个描述硬件的单板。在本教程的 PLATFORM 列表中可以选择多个硬件目标。运行本教程时用 –platform 参数来选择平台。原创 2025-04-01 21:32:11 · 964 阅读 · 0 评论 -
【TVM教程】使用 TVMC Micro 执行微模型
Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →本教程介绍了如何为微型设备编译一个微模型,并在 Zephyr 平台上构建一个程序,来执行这个模型,烧录程序,并用 tvmc micro 命令来执行所有模型。在进行本教程之前你需要安装 python 和 Zephyr 依赖。原创 2025-03-25 17:02:00 · 926 阅读 · 0 评论 -
【TVM教程】使用自定义调度规则(Sketch Rule)在 CPU 上自动调度稀疏矩阵乘法
首先用几个 relu 和 bias 相加来定义一个稀疏 matmul 的计算,该函数返回输入/输出张量列表,auto-scheduler 可以从这些张量中得到整个计算图。在调优之前,需要为稀疏密集操作定义 CustomSketchRule。CustomSketchRule 由两部分组成:条件函数和应用函数。条件函数:描述应用此调度规则的时间。例如,通过匹配名称和标签将规则应用于稀疏操作。应用函数:描述生成初始草图的方式。可以用 auto-scheduler 提供的循环状态 API 来实现。原创 2025-03-18 17:50:47 · 1213 阅读 · 0 评论 -
【TVM教程】为 Mali GPU 自动调度神经网络
首先要在 Relay 前端 API 中定义网络,可以从加载一些预定义的网络,也可以从 MXNet、ONNX 和 TensorFlow 加载模型。原创 2025-03-11 17:20:20 · 921 阅读 · 0 评论 -
【TVM教程】为 NVIDIA GPU 自动调度神经网络
首先,要用 Relay 前端 API 定义网络。可以从加载一些预定义的网络。也可以从 MXNet、ONNX、PyTorch 和 TensorFlow 加载模型(参见前端教程对于卷积神经网络,尽管 auto-scheduler 可以在任何布局下正常运行,但通过 NHWC 布局实现的性能最佳。auto-scheduler 对 NHWC 布局进行了很多优化,因此推荐将模型转换为 NHWC 布局,从而得以使用 auto-scheduler。可用pass 在 TVM 中进行布局转换。原创 2025-02-25 14:32:40 · 1558 阅读 · 0 评论 -
【TVM 教程】为 x86 CPU 自动调优卷积网络
首先在 Relay 前端 API 中定义网络,可以从加载一些预定义的网络,也可以使用 Relay 构建。还可以从 MXNet、ONNX 和 TensorFlow 加载模型。本教程用 resnet-18 作为调优示例。"""获取网络的符号定义和随机权重"""# MXNet 模型的示例else:# 将「llvm」替换为你的 CPU 的 target。# 例如,对于支持 Intel Xeon Platinum 8000 系列的 AWS EC2 c5 实例,原创 2025-02-19 13:01:33 · 356 阅读 · 0 评论 -
【TVM教程】为 GPU 自动调度卷积层
Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/作者:Lianmin Zheng, Chengfan Jia本文介绍如何为 GPU 使用 auto-scheduler。与 AutoTVM 不同,AutoTVM 依赖手动模板来定义搜索空间,而 auto-scheduler 不需要任何模板。用户只需编写计算声明,无需任何调度命令或模板。auto-scheduler 可以自动生成一个大的搜原创 2025-02-10 15:52:24 · 920 阅读 · 0 评论 -
【TVM教程】为 Mobile GPU 自动调优卷积网络
首先要在 Relay 前端 API 中定义网络,可以从 relay.testing 加载一些预定义的网络,也可以从 MXNet、ONNX 和 TensorFlow 加载模型。原创 2025-01-27 15:54:22 · 761 阅读 · 0 评论 -
【TVM教程】为 ARM CPU 自动调优卷积网络
首先要在relay前端API中定义网络,可以从relay.testing加载一些预定义的网络,还可以从MXNet、ONNX和TensorFlow加载模型。原创 2025-01-20 13:58:00 · 1025 阅读 · 0 评论 -
【TVM 教程】为 x86 CPU 自动调优卷积网络
首先在 Relay 前端 API 中定义网络,可以从 relay.testing 加载一些预定义的网络,也可以使用 Relay 构建 relay.testing.resnet。还可以从 MXNet、ONNX 和 TensorFlow 加载模型。本教程用 resnet-18 作为调优示例。"""获取网络的符号定义和随机权重"""# MXNet 模型的示例else:# 将「llvm」替换为你的 CPU 的 target。原创 2025-01-13 13:25:51 · 428 阅读 · 0 评论
分享