新闻详情

新闻详情

首页 / 资讯中心 / 详情

TFLM-day4

发布时间:2026/9/29 7:31:35来源:尧图网络
TFLM-day4
轻松学习 TFLM Day 4:手把手设计your_chip后端目录结构从最小可跑通到完整产品化逐步演进摘要:本文面向 AI 芯片设计商,系统讲解如何为 TFLM 设计一个可维护、可逐步演进的your_chip后端目录结构。文章先厘清后端通常包含的 5 层(平台移植、优化 kernel、adapter/common、外部 NN library、构建/测试),再给出最小目录与完整目录两套方案,并从 5 个维度对比帮助读者按阶段决策。随后逐一说明各目录职责、your_chip_common的胶水定位、NN library 的边界设计、optimized kernel 文件组织、支持矩阵、内存设计、Fallback 三模式、测试与 benchmark 安排、Bazel 建议及文件命名规范。最后给出从 0 到 1 的 5 阶段推荐路线(平台跑通 → 第一个优化算子 → CNN 算子 → 工程化 → CI 发布)和一份最终推荐目录树,帮助读者从最小可跑通版本平滑演进到产品化后端。这里的your_chip是一个占位名,实际项目可以替换成芯片或 IP 名称,例如:abc_npuxyz_dspmycompany_aiyour_chip本文目标是设计一个清晰、可维护、可逐步演进的后端结构。1. 先明确:TFLM 后端通常包含哪些东西一个芯片后端不只是几个conv.cc文件。完整一点看,它通常有 5 层:应用 examples / 用户工程 | v TFLM runtime | v TFLM optimized kernels | v your_chip adapter / common glue | v your_chip NN library / driver / firmware | v 硬件 NPU / DSP / AI accelerator所以目录结构也要对应这几层:层放什么平台移植层debug_log.cc、micro_time.cc、system_setup.cc。优化 kernel 层conv.cc、fully_connected.cc、softmax.cc等。adapter/common 层tensor 转换、shape 转换、量化参数转换、错误码转换。外部库层你们自己的 NN library、driver、固件头文件。构建/测试层Make/Bazel 配置、单测、benchmark、CI。2. 推荐的最小目录结构如果你想先跑通,不要一开始就建得太复杂。最小版可以这样:tensorflow/lite/micro/ ├── your_chip/ │ ├── debug_log.cc │ ├── micro_time.cc │ ├── system_setup.cc │ └── README.md │ └── kernels/ └── your_chip/ ├── README.md ├── your_chip_common.h ├── your_chip_common.cc ├── fully_connected.cc ├── conv.cc ├── depthwise_conv.cc └── softmax.cc这已经能覆盖第一阶段目标:平台能启动。日志能打印。时间能测量。关键 int8 算子能走硬件。其他算子继续走 reference。3. 推荐的完整目录结构产品化后端建议这样组织:tensorflow/lite/micro/ ├── your_chip/ │ ├── README.md │ ├── debug_log.cc │ ├── debug_log_callback.h │ ├── micro_time.cc │ ├── system_setup.cc │ ├── memory_map.h │ ├── platform_config.h │ └── startup_notes.md │ ├── kernels/ │ └── your_chip/ │ ├── README.md │ ├── your_chip_common.h │ ├── your_chip_common.cc │ ├── your_chip_status.h │ ├── your_chip_quantization.h │ ├── your_chip_tensor_utils.h │ ├── your_chip_scratch.h │ ├── your_chip_profiler.h │ ├── add.cc │ ├── conv.cc │ ├── depthwise_conv.cc │ ├── fully_connected.cc │ ├── pooling.cc │ ├── mul.cc │ ├── softmax.cc │ ├── reshape.cc │ └── transpose.cc │ └── tools/ └── make/ ├── targets/ │ ├── your_chip_makefile.inc │ └── your_chip/ │ ├── your_chip.lds │ ├── download_toolchain.sh │ └── README.md │ └── ext_libs/ ├── your_chip_nnlib.inc ├── your_chip_nnlib_download.sh └── your_chip_driver.patch如果你们的 NN library 不适合放进 TFLM 仓库,可以只放.inc和下载脚本,实际源码作为外部依赖管理。3.1 最小目录 vs 完整目录:怎么选上面给了最小版和完整版两套结构,很多读者会纠结“到底该建哪套”。这里从 5 个维度做个对比,帮你按项目阶段快速决策:对比维度最小目录结构完整目录结构目录层级2 层:your_chip/(平台适配)+kernels/your_chip/(优化算子)。3 层:平台适配 + 优化算子 +tools/make/(构建配置、链接脚本、外部库)。文件数量约 10 个文件,只保留跑通必需项。约 30+ 个文件,含your_chip_status.h、your_chip_quantization.h、your_chip_tensor_utils.h、your_chip_scratch.h、your_chip_profiler.h、Make target、ext_libs 等。适用阶段阶段 1-2:平台跑通、第一个优化算子(如fully_connected)。阶段 3-5:CNN 算子铺开、工程化、CI 发布。维护成本低:文件少、依赖少,改起来快,适合快速验证。高:文件多、职责划分细,需要团队约定和文档支撑。推荐场景个人探索、demo、评估芯片可行性、早期 bring-up。产品化、多人协作、长期维护、需要 benchmark 和 CI 的后端。一句话建议:先按最小目录跑通,再按完整目录演进。不要一上来就建全套,也不要一直停留在最小版——当算子数量超过 5 个、或开始接 CI 时,就该往完整目录迁移了。4. 各目录职责4.1tensorflow/lite/micro/your_chip/这是平台适配目录,解决“代码怎么在你的板子上跑”。建议文件:文件作用README.md平台说明、工具链版本、构建命令、已知限制。debug_log.cc把MicroPrintf接到 UART、RTT、semihosting 或系统 log。debug_log_callback.h如果希望用户自定义 log callback,可以放这里。micro_time.cc提供计时函数,用于 profiler 和 benchmark。system_setup.cc芯片启动后 TFLM 运行前的初始化,如 cache、clock、NPU。memory_map.hSRAM、TCM、NPU memory、DMA buffer 地址规划。platform_config.h平台宏、cache line、alignment、feature 开关。startup_notes.md记录启动、链接脚本、SDK 注意事项。参考现有目录:tensorflow/lite/micro/cortex_m_generic/tensorflow/lite/micro/hexagon/tensorflow/lite/micro/ceva/tensorflow/lite/micro/riscv32_generic/4.2tensorflow/lite/micro/kernels/your_chip/这是优化 kernel 目录,解决“每个算子怎么调用你的硬件”。建议文件:文件作用README.md支持哪些 op、数据类型、shape、量化方式、fallback 策略。your_chip_common.h/.cc通用转换函数、错误处理、硬件初始化检查。your_chip_status.h把芯片库错误码映射为TfLiteStatus。your_chip_quantization.h量化参数转换,如 multiplier/shift/zero point。your_chip_tensor_utils.h从TfLiteEvalTensor取 shape/data 并转成芯片 API 参数。your_chip_scratch.hscratch buffer 管理辅助。your_chip_profiler.h可选,用于记录硬件执行时间或 cycle。op.cc每个算子的 TFLM wrapper。第一批最值得优化的文件:算子文件为什么优先conv.ccCNN 模型主要耗时来源。depthwise_conv.ccMobileNet 类模型大量使用。fully_connected.cc分类头、dense 层、RNN 里常见。softmax.cc分类输出常见,虽不一定最耗时,但容易闭环。pooling.ccCNN 常见,接口相对简单。add.cc/mul.ccresidual、elementwise 融合常见。4.3tensorflow/lite/micro/tools/make/targets/your_chip_makefile.inc这是 Make target 配置,解决“用什么编译器、什么 flags、怎么链接”。建议内容:TARGET_ARCH := your_chip TARGET_TOOLCHAIN_ROOT := ... CXX := your-chip-g++ CC := your-chip-gcc AR := your-chip-ar CXXFLAGS += -DYOUR_CHIP CXXFLAGS += -I$(MAKEFILE_DIR)/downloads/your_chip_nnlib/include LDFLAGS += -T tensorflow/lite/micro/tools/make/targets/your_chip/your_chip.lds可以参考:tensorflow/lite/micro/tools/make/targets/cortex_m_generic_makefile.inctensorflow/lite/micro/tools/make/targets/ceva_makefile.inctensorflow/lite/micro/tools/make/targets/xtensa_makefile.inctensorflow/lite/micro/tools/make/targets/hexagon_makefile.inc4.4tensorflow/lite/micro/tools/make/ext_libs/your_chip_nnlib.inc这是外部库配置,解决“怎么把你们 NN library 加进来”。建议内容:YOUR_CHIP_NNLIB_ROOT := $(MAKEFILE_DIR)/downloads/your_chip_nnlib MICROLITE_CC_INCLUDES += \ -I$(YOUR_CHIP_NNLIB_ROOT)/include MICROLITE_LIBS += \ $(YOUR_CHIP_NNLIB_ROOT)/lib/libyour_chip_nnlib.a
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Windows服务器自建轻量网盘:filebrowser部署与运维实战 2026/9/29 8:21:01

Windows服务器自建轻量网盘:filebrowser部署与运维实战

如果你手头有一台Windows服务器,闲置的盘符里堆着各种文件,想给同事、家人或者自己搞一个能随时上传下载、能分享链接的私人网盘,同时又不想碰那些动辄占用几百MB内存、配置起来要折腾数据库和PHP环境的重型方案——那filebrowser这个工具&am…

阅读更多 →
Anaconda安装卡在解压?国内源配置与静默安装全指南 2026/9/29 8:21:00

Anaconda安装卡在解压?国内源配置与静默安装全指南

1. 为什么Anaconda安装卡在“正在解压”三分钟不动?——从源头讲清国内源的真正价值你是不是也经历过:下载完Anaconda安装包,双击运行,进度条走到“正在解压”就卡住,鼠标转圈十分钟不动?点任务管理器一看&…

阅读更多 →
特征感知预测框架FeTS:算力约束下的时序预测优化实践 2026/9/29 8:20:54

特征感知预测框架FeTS:算力约束下的时序预测优化实践

1. 从算力焦虑说起:为什么我们需要一个特征感知的预测框架做时序预测这行的朋友这两年应该都有同感:模型越堆越大,数据越喂越多,但真正跑起来之后,效果提升的边际收益却越来越低。我最早接触这类需求是在一个工业设备预…

阅读更多 →
AI工程从零到一:拆解RAG、Agent与LLM应用落地全链路 2026/9/29 8:20:54

AI工程从零到一:拆解RAG、Agent与LLM应用落地全链路

我经常在交流群里看到两类人:一类是机器学习科班出身,模型训练搞得头头是道,但面对"怎么把一个LLM封装成可用的产品"时一头雾水;另一类是业务后端工程师,API调得飞起,但不知道RAG、Agent到底该怎…

阅读更多 →
AI-Native落地被知识库卡脖子?一文讲透RAG知识库建设全链路 2026/9/29 8:20:28

AI-Native落地被知识库卡脖子?一文讲透RAG知识库建设全链路

海博团队做 AI-Native 落地,前前后后折腾了大半年,最深的体会是:卡脖子的往往不是模型,而是知识库。你可能也遇到过这种场景——模型选型定了,Agent 框架也跑通了,结果一问业务细节,AI 就开始一…

阅读更多 →
AI时代不得不知道的大模型价格体系换算:TaoToken统一Key下的计费口径拆解 2026/9/29 8:20:28

AI时代不得不知道的大模型价格体系换算:TaoToken统一Key下的计费口径拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉