【TVM 教程】调试 TVM

部署TVM Runtime 部署TVM Runtime 本文主要介绍如何在开发板上部署TVM Runtime, 在本地机器安装完整的TVM(包含了TVM Runtime以及编译功能), 并且使用一个简单的远程调用例子测试是否部署成功。本地机器使用的是Linux操作系统,开发板使用的是预装的Fedora系统。 开发板与TVM的概述 开发板 开发板(Embedded AI Development Kit),以 Arm SoC 为硬件平台,Tengine(Arm 中国周易平台)为核心的人工智能基础软件平台 AID,集成典型应用算法,所形成的 阅读详情

Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →https://tvm.hyper.ai/

注意:本章节内容持续更新中,欢迎各位提交 PR 不断丰富。本文档旨在集中分享调试 TVM 的常用方法,排列顺序以使用频率为依据。

VLOGging

TVM 提供了一个冗余信息的记录工具,允许开发者在不影响运行中 TVM 二进制大小或 runtime 的同时,提交跟踪级别的调试信息。在代码中使用 VLOG:

void Foo(const std::string& bar) {
  VLOG(2) << "Running Foo(" << bar << ")";
  // ...
}

在这个例子中,传递给 VLOG() 的整数 2 表示冗余级别。级别越高,打印的日志就越多。一般来说,TVM 级别从 0 到 2,3 只用于极底层的核心运行时属性。VLOG 系统在启动时被配置为打印 0 到某个整数 N 之间的 VLOG 语句。N 可以按文件或全局来设置。

默认情况下(当采用适当的优化进行编译时),VLOG 不会打印或影响二进制的大小或runtime。启用 VLOGging,请执行以下操作:

  1. 在 config/cmake 中,确保设置 set(USE_RELAY_DEBUG ON)。这个标志是用来启用 VLOGging 的。

  2. 通过 TVM_LOG_DEBUG=<spec> 启动 Python,其中 <spec>> 是一个形式为 <file_name>=<level> 的以逗号分隔的级别赋值列表。尤其需要注意:

    • 特殊文件名 DEFAULT 为所有文件设置 VLOG 级别。
    • <level> 可以被设置为 -1 来禁用该文件的 VLOG。
    • <file_name> 是在 TVM 仓库中相对于 src/ 目录的 c++ 源文件的名字(例如 .cc,而不是 .h)。您不需要在指定文无论在指定文件路径时,是否提供 src/,VLOG 都可以正确解释路径。
TVM——快速部署模型的终极方案 作者:禅与计算机程序设计艺术 1.简介 随着人工智能(AI)技术的发展,模型的迅速部署已经成为一种必然。在深度学习模型快速落地到商业落地场景中,如何将高效且准确的推理部署到生产环境并保证服务质量一直是一个重要的课题。本文将通过对TVM工具进行阐述,结合相关开源框架的功能特性和实际案例,对当前的模型部署方 阅读详情

相关推荐

手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)

本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。

ooo22的博客 329

调试TVM

本文翻译自Debuggging TVM — tvm 0.9.dev0 documentationTVM提供了详细日志记录功能,允许提交跟踪级调试消息,而不会影响生成的TVM二进制文件大小或TVM运行时间。你可以在你的代码中像下面这样使用VLOG: 在本例中,传递给VLOG()的2表示详细级别。级别越高,打印的日志越多。通常TVM级别从0到2不等,3只用于极低级的核心运行时属性。VLOG系统在启动时被配置为打印0到N之间的VLOG语句。N可以是全局的,也可以是单个文件定义的。vlog默认不打印,不影响二进

zx_ros的博客 1067

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 313

【TVM 教程】如何使用 TVM Pass Infra

Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →<https://tvm.hyper.ai/>

HyperAI超神经 832

Power BI常见问题篇1:无法打开文档

Power BI常见问题篇1:无法打开文档

weixin_48273257的博客 3305

TMS320F280049C 学习笔记11 控制率加速器 CLA 例程

总结了TI官方在C2000Ware_3_01_00_00版本中提供的7个与CLA相关的例程。

whyorwhnt的专栏 1万+

tvm教程 ------混合 Python/PyTorch 与 TVM

TIR 与 Relax 函数在实例化时 JIT 编译,Python 函数按原样运行,张量则通过零拷贝 DLPack 在 TVM 与 PyTorch 之间传递。桥接 Python 与 TIR:经 DLPack(零拷贝)把 PyTorch 张量转为 TVM NDArray,分配输出缓冲,调用已编译 kernel,再转回。支持双向跨层调用:Relax 函数可调用 Python 函数,Python 函数也可调用 TIR/Relax 函数。Relax 函数与 Python 函数都在描述计算图。

happyAnger6的专栏 207

MIKE21桥墩模拟实战:抠网格与构筑物法对比与选型指南

本文详细对比了MIKE21软件中抠网格法与构筑物法在桥墩模拟中的应用,包括操作步骤、适用场景及优缺点分析。通过实际案例数据展示两种方法的精度与效率差异,并提供选型决策树和常见问题解决方案,帮助工程师根据项目需求选择最优模拟方法。

weixin_42656416的博客 322

使用pdb与gdb调试TVM源码

使用pdb与gdb调试TVM源码 前言 TVM代码库的一个有趣的方面是c++和Python之间的互操作性不是单向的(python和C++的交互)。通常,所有执行重载的代码都是用c++实现的,并且为用户界面提供了Python绑定。在TVM中也是如此,但是在TVM代码库中,c++代码也调用Python模块中定义的函数。例如,用Python实现卷积运算符,它的实现是从Relay中的c++代码调用的。所以...

Ahuier21 2802

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

前程算法屋的博客 5593

超详细!Linux 服务器 6 大核心性能测试(附自动脚本 + 结果分析秘籍)---Linux 服务器性能测试文档

本文档旨在提供 Linux 服务器的 CPU、内存和磁盘性能测试方案,包括详细的测试大纲、操作步骤以及一键化测试脚本,帮助管理员快速评估服务器性能状况。通过以上测试方案,可以全面评估 Linux 服务器的 CPU、内存和磁盘性能,为系统优化、容量规划和问题排查提供重要参考依据。使用 sysbench 进行 CPU 基准测试。使用 sysbench 测试内存读写性能。使用 fio 工具进行更全面的磁盘测试。使用 dd 命令测试磁盘顺序读写性能。使用 dd 命令测试内存读写速度。记录磁盘 IO 性能。

jundao1997的专栏 380

tvm在linux环境下的安装与编译及vscode如何配置tvm的远程连接调试环境

本篇文章介绍一下 `tvm` 在`linux`环境下的安装与编译,以及如何使用`vscode`来配置`tvm`的远程连接调试环境。

夏小悠的博客 2963

UniRx之基本语法格式

想要更好的去学习UniRx,我们最好是先理解UniRx 的语法格式。就像我们去学习英语或者汉语一样,理解了基本的语法规则后,再学其他的就信手拈来了。

TxNet 924

【TVM教程】TVM 运行时系统

TVM 现已更新到 0.21.0 版本,TVM 中文文档已经和新版本对齐。 Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →Apache TVM

HyperAI超神经 1019

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【TVM 教程】如何在 CPU 上优化 GEMM

​应用上述简单优化后,仅用 18 行代码,就可以达到使用 MKLnumpy性能的 60%。注意,网页上的输出反映了非专有 Docker 容器上的运行时间,是不可靠的。推荐自己运行本教程,观察 TVM 的性能提升。下载 Python 源代码:opt_gemm.py下载 Jupyter Notebook:opt_gemm.ipynb。

HyperAI超神经 876

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

TVM Compiler中文教程:TVM如何优化CPU GEMM(矩阵乘法)

文章目录TVM如何优化CPU GEMM(矩阵乘法)准备和基线Opt1:分块Opt2:向量化Opt3:循环排布permuteOpt4:数组打包Opt5:为块写cacheOpt6:并行 TVM如何优化CPU GEMM(矩阵乘法) TVM提供抽象接口,允许用户分别描述算法和算法的实施组织(所谓的调度Schedule)。通常,写高性能调度的算法时,会破坏算法的可读性和模块性。此外,尝试各种看似有用的调度是...

Mars_WH的专栏 5588

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TVM调试器

TVM调试器是一个调试TVM计算图执行的接口。它有助于在TVM运行时提供对图结构和张量值的访问。图经过relay优化后,以json序列化格式存储。json文件中包含了图的全部信息。UX可以直接使用这个图,也可以将这个图转换成UX可以理解的格式。下面将解释Graph JSON格式1. nodes:在json中,节点代表占位符或计算节点。节点存储为一个列表。节点包含以下信息:(1)flatten_data:是否需要在执行前将数据扁平化(2)func_name:融合后的函数名,对应于Relay编译过程生成的库中的

zx_ros的博客 851

利用Docker Image构建TVM GPU 0.18.0版本教程

本篇教程内容较多,但是详细描述了作者的构建路径,确保可以正确地构建TVM最新版本。因为docker wsl 在默认情况下只使用Windows Memory的50%,不满足作者需求所以对.wslconfig文件进行更改在下新建文本文件加入以下内容改名为.wslconfig最终效果如下。

explosion_216的博客 1745

【TVM 教程】设置 RPC 系统

Apache TVM是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →远程过程调用(RPC)是 Apache TVM 的一个非常重要且有用的功能,它允许我们在实际硬件上运行编译后的神经网络(NN)模型,而无需触及远程设备,输出结果将通过网络自动传回。通过消除手动工作,如将输入数据转储到文件、将导出的 NN 模型复制到远程设备、设置设备用户环境以及将输出结果复制到主机开发环境,RPC 极大地提高了开发效率。

HyperAI超神经 1072

TVM 从入门到精通 | 安装 TVM (Part 1)

手把手教学之从源码安装 TVM

HyperAI超神经 3203

Linux下安装TVM

TVM安装 前言 安装要求: gcc版本 >=4.8 CMake >=3.5 python3 最新的tvm已经不支持python2了 llvm 我选择的版本为llvm-4.0.0 从github上下载TVM 下载源码->创建要编译生成so的文件夹-> $ git clone --recursive https://github.com/dmlc/tvm $...

Ahuier21 4356

TVM安装教程(基于ubuntu)

若返回”Hi XXX!注意要加 --recursive选项,TVM代码库中3rdparty路径下的一些subproject的代码需要被git clone下来,否则导致缺少文件,会引发编译错误。现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱。github是基于SSH协议的Git服务,在使用SSH协议访问仓库之前,需要先配置好账户/仓库的SSH公钥。由于github网站不太稳定,导致递归下载子项目容易出错,可以手动进入该目录,用git clone下载子项目代码。

引力空间 1151

【tvm官网教程01】设计和架构-2-runtime

【tvm官网教程01】设计和架构-2-runtime1. runtime系统1.1 PackedFunc1.2 Module1.3 远程部署1.4 TVM object和编译器栈1.5 runtime具体实现2. debugger3. Relay虚拟机4. Module序列 1. runtime系统 TVM支持多种编程语言用于编译栈的开发和部署。 runtime需要解决的难题有: 部署:从python / javascript / c ++语言调用已编译的函数。 调试:在python中定义一个函数,然后从

B10030607的博客 1353

TVM[1] —— TVM的编译安装

服务器(无sudo权限)源码编译安装 tvm0.9+python3.7 实录(亲测完成)

ict_rtf的博客 1284

攻克TVM编译难题:调试工具全解析与实战指南

在深度学习模型部署过程中,你是否曾遇到过TVM编译后的模型运行结果异常,却难以定位问题根源?本文将详细介绍TVM调试工具的使用方法,帮助你快速追踪并解决编译过程中的各类问题。通过本文,你将掌握TVM调试环境的搭建、计算图可视化、张量数据检查以及性能分析等关键技能,提升模型部署效率。 ## TVM调试工具概述 TVM调试工具是一个用于调试TVM计算图执行的接口,它提供了对计算图结构和张量值的访问...

gitblog_00335的博客 832

【TVM 教程】Python Target 参数化

Apache TVM 是一个深度的深度学习编译框架,适用于 CPU、GPU 和各种机器学习加速芯片。更多 TVM 中文文档可访问 →远程过程调用(RPC)是 Apache TVM 的一个非常重要且有用的功能,它允许我们在实际硬件上运行编译后的神经网络(NN)模型,而无需触及远程设备,输出结果将通过网络自动传回。通过消除手动工作,如将输入数据转储到文件、将导出的 NN 模型复制到远程设备、设置设备用户环境以及将输出结果复制到主机开发环境,RPC 极大地提高了开发效率。

HyperAI超神经 837
上一篇: 迎战「硅基经济学」时代,华东师大上海人工智能金融学院发布SmithRM金融推理大模型,打造金融智能引擎
下一篇: 基于1.3万个视频片段,北大施柏鑫团队联合贝式计算提出全景视频生成框架PanoWan,兼顾零样本视频编辑
HyperAI超神经
博客等级 码龄7年 8872粉丝 1753原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值