首页
›
工业控制与工业互联网
›
021-TVM Micro端侧编译优化
›
《TVM Micro端侧代码体积优化与链接设置》
VIP20
本课程属于:021-TVM Micro端侧编译优化
工业控制与工业互联网 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
📘
TVM Micro端侧代码体积优化与链接设置
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导入
学习目标 · 核心概念 · 整体框架
课程导入
学习目标
02
TVM Micro基础
TVM Micro的架构 · 工作流程 · 与标准TVM的差异
TVM
Micro
03
代码体积问题剖析
端侧代码体积过大的原因 · 影响 · 以及优化目标与衡量指标
代码体积问题剖析
端侧代码体积过大…
04
链接器基础
链接器的作用 · 链接脚本 · 符号解析
链接器基础
链接器的作用
05
TVM Micro的代码生成流程
从模型到C代码的生成过程 · 涉及代码模板 · 算子实现
TVM
Micro
06
代码体积优化策略总览
宏定义 · 条件编译 · 函数内联
代码体积优化策略…
宏定义
07
链接脚本定制
编写和修改链接脚本 · 控制代码段 · 数据段
链接脚本定制
编写
08
符号裁剪与垃圾回收
使用链接器--gc-sections · --print-gc-section… · 去除未使用的函数和数据
符号裁剪
垃圾回收
09
函数级链接与段级链接
将每个函数或数据放入独立段 · 实现细粒度裁剪 · 减少最终二进制体积
函数级链接
段级链接
10
TVM Micro的算子库裁剪
按需选择算子实现 · 使用条件编译或宏开关 · 避免编译全部算子
TVM
Micro
11
运行时库精简
TVM Micro运行时(micro… · 裁剪不需要的模块如调试 · 日志
运行时库精简
TVM
12
内存分配优化
静态内存池 · arena分配器 · 减少动态分配
内存分配优化
静态内存池
13
代码生成选项
TVM编译参数如--system-l… · --runtime · --target
代码生成选项
TVM
14
链接时间优化(LTO)
使用LTO进行跨模块优化 · 内联 · 常量传播
LTO
链接时间优化
15
编译器优化级别
-Os · -Oz · -O2等优化选项对代码体积的影响
编译器优化级别
Os
16
数据段优化
常量折叠 · 字符串合并 · 只读数据对齐
数据段优化
常量折叠
17
代码对齐与填充优化
调整函数对齐 · 循环对齐 · 减少填充字节
代码对齐
填充优化
18
链接器映射文件分析
生成并解读.map文件 · 定位体积占用大的函数和数据 · 指导优化
链接器映射文件分…
map
19
使用工具分析代码体积
size · nm · objdump
使用工具分析代码…
size
20
案例实战
基于Cortex-M的TVM Mic… · 从默认编译到体积优化的完整流程
案例实战
Cortex-M
21
案例实战
裁剪一个手写数字识别模型 · 将代码体积从XX KB降至YY KB · 并验证推理正确性
案例实战
裁剪一个手写数字…
22
常见问题
链接错误(未定义符号 · 重复定义) · 段溢出
常见问题
链接错误
23
常见问题
优化后性能下降 · 功能异常 · 如何调试和回退优化选项
常见问题
优化后性能下降
24
与IDE和构建系统集成
在STM32CubeIDE · Keil · CMake等环境中配置链接脚本和编译…
IDE
构建系统集成
25
自动化优化流程
编写脚本自动分析体积 · 调整链接脚本 · 迭代优化
自动化优化流程
编写脚本自动分析…
26
高级主题
使用自定义链接器插件 · 动态加载 · 覆盖技术(overlay)进一步压缩…
高级主题
使用自定义链接器…
27
综合实战
从零开始为一个实际端侧AI应用(如关… · 达到目标体积
综合实战
AI
28
性能与体积的权衡
在优化体积的同时保持推理速度 · 通过基准测试验证
性能
体积的权衡
29
最佳实践与经验总结
总结TVM Micro体积优化的关键… · 常见陷阱 · 以及项目中的推荐流程
最佳实践
经验总结
30
课程总结与展望
回顾核心知识 · 探讨TVM Micro未来在端侧的发… · 以及进一步学习资源
课程总结
回顾核心知识
所属VIP或分类
同VIP:TVM-Micro-AOT执行器配置与性能调优
同VIP:TVM-Micro-Relay图优化与端侧部署指南
同VIP:TVM-Micro-target配置与Cortex-M编译实战