Public Docs
【模型量化】深度学习模型量化 & 量化理论 & 各平台的量化过程 & 硬件加速
【TVM】TI关于TVM的使用测试与分析
【LLM&LVM】大模型开源工程思维导图
【北航卓越工程师】《汽车前沿技术导论:智能驾驶》讲义
【工具链】Yocto使用介绍——使用Yocto创建一个树莓派的系统镜像
【工具链】使用ssh+dialog指令设定服务器指定用户仅容器访问
【推理引擎】一篇关于模型推理的详细对比与学习
【推理引擎】关于TVM中的Schedule优化详解(On going)
【LLM微调】使用litgpt进行私有数据集模型微调的测试总结
【TVM】在TVM Relay中创建一个自定义操作符
【STT+LLM+TTS】如何使用语音转文字模型+大预言模型+语音生成模型完成一个类人的语音交互机器人
【RAG】 通过RAG构建垂直领域的LLM Agent的方法探索
【RAG】GraphRAG精读与测试(On going)
【AI Agent】MetaGPT精读与学习
【AI Base】Ilya Sutskever 27篇必读论文分享清单
【Nvidia】Jetson AGX Orin/ Jetson Orin nano 硬件测试调试内容(On going)
【BI/DI】LLM Using in BI Testing Scenario (On going)
【Nvidia】How to Activate a Camera on Nvidia Platform in Details
【RAS-PI】树莓派驱动开发
【行业咨询阅读】关注实时咨询和分析
【mobileye】2024 Driving AI
【mobileye】SDS_Safety_Architecture
【yolo】yolov8测试
【nvidia】Triton server实践
【alibaba】MNN(on updating)
【OpenAI】Triton(on updating)
【CAIS】关于Compound AI Systems的思考
【Nvidia】关于Cuda+Cudnn+TensorRT推理环境
【BEV】BEVDet在各个平台上的执行效率及优化(On Updating)
【Chip】AI在芯片设计和电路设计中的应用
【Chip】ChiPFormer
【Chip】关于布线的学习
【Chip】MaskPlace论文精读与工程复现优化
【gynasium】强化学习初体验
【Cadence】X AI
【transformer】MinGPT开源工程学习
【中间件】针对apollo 10.0中关于cyberRT性能优化的深度解读和思考
【Robotics】调研了解当前机器人开发者套件(on updating)
【Robotics】ROS CON China 2024 文档技术整理与感想总结(上2024.12.7,中2024.12.8,下场外产品)
【algorithm】关于模型、数据与标注规范的平衡问题
【nvidia】DLA的学习了解与使用
【nvidia】构建nvidia嵌入式平台的交叉编译环境(其他环境平台可借鉴)
【2025AI生成式大会】2025大会个人总结
【Robotics】 Create Quadruped Robot RL FootStep Training Environment In IsaacLab
文档发布于【Feng's Docs】
-
+
首页
【TVM】TI关于TVM的使用测试与分析
# 1. 前言 上一篇文档 [TI-EdgeAI使用OSRT之TVM进行模型导出](http://blackmanba.top/doc/6/) ,详细介绍了关于在TI平台的导出阶段使用OSRT(open source Runtime)中的TVM模块对模型进行导出的详细过程,同时也大体上梳理了关于TVM进行模型导出和推理的整个过程。 本着对TVM框架的好奇和开源TVM框架的边界以及使用方法和优略这一目标,同时参考对比其他使用TVM框架的平台或者类似TVM的框架的介绍,以了解、分析、使用、对比、联想和总结为过程,相信总结使用TVM框架解决模型部署问题的优劣。  联想:MindIR is Relay High Level IR   # 2. 使用TVM导出img_stage的过程 * 整体TVM的使用过程在 [TI-EdgeAI使用OSRT之TVM进行模型导出](http://blackmanba.top/doc/6/) 中已经有详细的说明,这里不再赘述。主要是描述一下在BEVDet img_stage导出过程中遇到的问题,需要测试的需求和解决方案。  * 整体需要测试的需求有三个: 1. BEVDet 中的Image_stage是否能正常导出; 2. TVM导出是否支持多Batch的方式; 3. 对于一些不支持层如何处理; # 2.1. BEVDet 中的Image_stage是否能正常导出  直接说结论,如上图所示能够正常导出。导出过程将下图中的模型结构拆分成了5个子图。  其中第四个子图tidl_3中,BN层连接两个GEMM的部分,整个Relay解析部分能够正常完成,但是导出的Relay会因为合并优化等过程导致TIDL导出过程报错。这时候需要使用deny_list针对BN和GEMM的合并不去进行优化。执行完成后既可以看到上图中正常完成导出结果。   # 2.2. TVM导出是否支持多Batch的方式 从实际执行时可以发现,TVM默认导出不支持多Batch的方式。   但是查看源码后可以发现,可以通过配置环境变量的方式适配多batch   配置完成后Relay转换阶段不再有相关batch不支持的报错提示,模型能够顺利导出。  但是如果使用data calibration,还有可能因为网络参数配置的关系导致不支持。  但是值得注意的是,在0901(不包含0901)版本之前,TIDL不支持多个C7X当作一个使用。所以即使如下图所示,模型本身能够按照多batch的方式导出,该模型仍只能porting到一个target上去运行,从执行效率的角度来说无法做到效率最大化。  # 2.3. 对于一些不支持层如何处理 * 如果是TIDL不支持但是TVM支持并能够识别的层,TVM能够生成在arm上或者C7x上执行的代码; * 如果是TIDL不支持,TVM也不支持的曾,需要额外在TVM中去进行实现,并且需要考虑性能问题 关于如何在TVM中创建一个Operator 可以参见TVM官网  # Annexe * https://tvm.apache.org/docs/tutorial/introduction.html#an-overview-of-tvm-and-model-optimization * https://mp.weixin.qq.com/s?__biz=MzUzMzY1NTkwOQ==&mid=2247516186&idx=1&sn=a48f507414d76f43c57318dadfb24ff9&chksm=faa27810cdd5f106ab1f049abff5f0645459d452809ed0898dba618996301a5f4e09cd7a1ca1&mpshare=1&scene=1&srcid=0212Kbth4oQC89Ohbuh4Igu1&sharer_shareinfo=720fab24388896cad21520c9f4e344d7&sharer_shareinfo_first=cfa65a4029ab1e6f37ce2478c150c66a#rd * https://tvm.apache.org/docs/dev/how_to/relay_add_op.html?highlight=scanopattrs * https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1322956/missing-inputs-in-the-network-and-cannot-be-topologically-sorted
dingfeng
2024年6月18日 11:46
1069
0 条评论
转发文档
收藏文档
上一篇
下一篇
评论
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码