Chapter 6: INT8 Quantization Exploration
| Project Attribute | Details |
|---|
| Project Name | Helmsman — INT8 Quantization Exploration |
| Phase | DR1 INT8 + MR2 Phase-4 |
| Date | 2026-04-06 ~ 2026-06-05 |
| Key Personnel | Potter White |
1. Core Question
2. MODNet INT8 — 纯 CNN 路线
3. RVM INT8 — 纯 INT8 崩溃
|r-state| B[Frame 2]
B -->|r-state + 量化误差| C[Frame 3]
C -->|r-state + 更大误差| D[Frame N]
D -->|误差指数发散| E[pha = 0.000000]
核心洞察:**RNN 的误差累积是架构性问题,不是校准问题。**
-->
### **4. RVM INT8 — 混合量化尝试**
<!-- 填入:
- 方案:INT8 编解码 + FP16 r-state(保留递归状态精度)
- 阻断:被 SDK v2.3.2 bug 阻断(SE Block KeyError '593')
- 根因:rknn-toolkit2 v2.3.2 的 quant_optimizer.py._p_adjust_tanh_sigmoid() 对 SE Block 的 MatMul→Sigmoid tensor key 处理有缺陷
- 进展:v2.4.0 修复了 quant_optimizer,但 hybrid_step2 完整验证未完成
- 参考 PKB summarize-MR2-ending.md §2.2
-->
### **5. ConvGRU INT8 vs MODNet INT8 对比**
<!-- 填入:对比表(参考 PKB summarize-MR2-ending.md §2.3):
| 维度 | RVM (ConvGRU) | MODNet (纯 CNN) |
|------|---------------|-----------------|
| INT8 精度 | ❌ cosine=0.000 | ✅ cosine=0.999 |
| 误差累积 | 有(帧间 r-state)| 无(每帧独立)|
| 混合量化可行性 | ❌ SDK bug 阻断 | ✅ 不需要 |
| FPS 上限 | ~16.7 | ~30-40 |
-->
### **6. Value of This Exploration**
<!-- 填入:这一章的核心价值:
"用实验证明了一条路走不通"本身就是工程判断力。
具体价值:
1. 避免了在错误方向上继续投入(RVM INT8)
2. 定量证明了 RNN 在 NPU 上的架构性限制
3. 为项目方向决策提供了数据支撑(回到 MODNet)
4. 发现了 SDK bug,对社区有参考价值
这个发现不是"失败",而是"用最小代价获得了最关键的判断"。
-->
### **7. Decision: Back to MODNet**
<!-- 填入:基于以上实验,做出的决策:
1. RVM 架构性 FPS 天花板 16.7,无法突破 30 FPS
2. ConvGRU INT8 精度崩溃,混合量化被 SDK bug 阻断
3. MODNet 纯 CNN 无帧间依赖,INT8 可行,理论 30+ FPS
4. 决定回到 MODNet 路线,继续 INT8 + 流水线并行
-->