1. 课程导入与功耗优化全景

STM32N6 是 ST 首款集成自研神经网络加速器 Neural-ART 的 MCU,典型算力约 600 GOPS,配合 1 GHz 的 Cortex-M55 与 4.2 MB 片上 SRAM,使边缘 AI 推理第一次可以完全在 MCU 内部完成。但这也带来一个直接后果:功耗不再由单一 CPU 决定,而是由 NPU、CPU、内存子系统、外设与电源管理单元共同决定。本课程的目标,是建立一套从模型到芯片、可测量、可归因、可优化的功耗分析框架。

典型应用场景与功耗画像

STM32N6 的边缘 AI 场景大致可分为三类,它们的功耗画像差异很大:

  • 常开感知类:关键词唤醒、人员检测、异常声音识别。特点是推理频率低(1~10 Hz)、模型小(<200 KB)、平均功耗要求苛刻,通常以电池供电,目标平均电流在百微安到几毫安量级。
  • 间歇推理类:工业视觉质检、门禁人脸识别、智能家居手势控制。特点是事件触发、单次推理算力需求高(数百 MOPS 到数 GOPS),但占空比低,优化重点是“唤醒—推理—休眠”的切换开销与唤醒延迟。
  • 连续推理类:视频流目标跟踪、多路传感器融合。特点是 NPU 与 CPU 长期工作,功耗以百毫瓦计,优化重点是能效比(GOPS/W)与内存带宽瓶颈。

这三类场景决定了优化目标的不同:常开感知追求平均功耗,间歇推理追求能量/次,连续推理追求能效比。工程上必须先明确属于哪一类,否则优化方向会完全跑偏。

功耗构成:五个可归因的域

把 STM32N6 的功耗拆开看,可以归到五个域:

  1. NPU 动态功耗:与推理频率、MAC 利用率、权重与激活值的数据搬运量强相关。Neural-ART 的能效在 0.5~1 TOPS/W 量级,但实际利用率受内存带宽限制。
  2. CPU 动态功耗:Cortex-M55 负责前后处理、调度与协议栈。带 Helium(MVE)的向量指令能显著降低前后处理周期数,从而降低这部分功耗。
  3. 内存子系统功耗:包括 4.2 MB SRAM 的访问功耗与外部 PSRAM/Flash 的接口功耗。这是最容易被忽视、却常常是瓶颈的一项。
  4. 外设与接口功耗:摄像头接口(CSI)、MIPI、DCMI、UART、SPI、以太网等,取决于数据率与是否常开。
  5. 静态与漏电功耗:与温度、电压、工艺角相关,在低功耗模式下成为主导项。

一个常见的误区是只盯着 NPU 的 GOPS 和频率,而忽略了数据搬运。在 STM32N6 上,一次推理的能量往往有相当比例消耗在 SRAM 读写与外部存储访问上,因此“减少数据搬运”常常比“提高 NPU 频率”更有效。

从模型到芯片的功耗分析框架

下面这张图给出本课程贯穿始终的分析框架:左侧是模型侧的可控变量,中间是芯片侧的功耗域,右侧是可观测的测量点与优化目标。它把“模型—编译—运行时—芯片—测量”串成一条可归因的链路。

STM32N6 边缘 AI 功耗分析框架:模型 → 编译 → 运行时 → 芯片 → 测量 模型侧(可控变量) 网络结构 / 层数 MAC 数、参数量 量化位宽 INT8 / INT4 / 混合 输入分辨率 决定激活值规模 算子类型 Conv / DWConv / FC 推理频率 占空比 / 触发方式 编译与部署 ST Edge AI Core 图优化 / 算子融合 内存分配策略 SRAM / PSRAM 布局 NPU 算子映射 硬件加速 vs CPU 回退 权重存储位置 Flash / SRAM / 外部 时钟与电压配置 DVFS 档位 芯片侧功耗域 NPU(Neural-ART) 动态功耗 ∝ MAC 活动 Cortex-M55 + Helium 前后处理 / 调度 内存子系统 4.2 MB SRAM + 外部 外设与接口 CSI / MIPI / UART / ETH 电源管理单元 Run / Sleep / Standby 静态漏电(温度相关) 测量与目标 电流探头 / 功耗计 平均电流、峰值电流 能量/次推理 mJ / inference 能效比 GOPS/W 唤醒延迟 ms(影响占空比) 电池寿命估算 平均电流 × 占空比 测量结果反馈:定位瓶颈 → 回到模型/编译侧调整

框架的关键在于“可归因”:任何一次功耗异常,都应该能沿着这条链路找到对应的域。例如平均电流偏高,可能是 NPU 占空比过高、也可能是唤醒延迟太长导致无法进入深度睡眠、还可能是外部 PSRAM 常开。只有把测量点与功耗域对应起来,优化才不是盲调。

工程约束:不能只看功耗

实际项目中,功耗优化始终受四类约束牵制:

  • 精度约束:量化到 INT8 通常精度损失可接受,但 INT4 或更激进的量化可能让 mAP 掉几个点,必须用验证集确认。
  • 实时性约束:降低 NPU 频率能省功耗,但单次推理时间变长,可能错过帧率或响应窗口。
  • 内存约束:4.2 MB SRAM 要同时容纳权重、激活值、双缓冲与协议栈,放不下就要外扩,而外扩本身增加功耗。
  • 成本与开发周期约束:不是所有项目都能上外部 PSRAM 或做定制板,优化要在现有硬件上完成。
建立功耗基线是第一步:在目标板上以固定输入、固定频率、固定温度跑一次完整推理,记录平均电流、峰值电流、单次推理时间与能量。后续所有优化都以这条基线为参照,避免“感觉变快了”这类不可验证的判断。

本课程的组织方式