ZHDA053 February   2026

 

  1.   1
  2.   摘要
  3.   商标
  4. 简介
    1. 1.1 NPU 定义和用途
    2. 1.2 关键功能
    3. 1.3 技术限制
  5. 开发流程概述
    1. 2.1 模型开发阶段
    2. 2.2 模型编译阶段
    3. 2.3 应用程序集成阶段
  6. 模型创建示例 (Python)
    1. 3.1 模型选型依据
    2. 3.2 模型架构设计
    3. 3.3 训练详细信息
      1. 3.3.1 开发环境设置
      2. 3.3.2 数据集生成
      3. 3.3.3 模型训练配置
      4. 3.3.4 量化感知训练流程
  7. 嵌入式平台量化
    1. 4.1 量化方法:QAT 与 PTQ
      1. 4.1.1 训练后量化 (PTQ)
      2. 4.1.2 量化感知训练 (QAT)
    2. 4.2 量化框架和包装器模块
      1. 4.2.1 用于 CPU 量化的通用包装器
      2. 4.2.2 用于 NPU 硬件加速的 TINPU 包装器
  8. 验证模型
    1. 5.1 两阶段训练策略
      1. 5.1.1 初始训练阶段
      2. 5.1.2 微调阶段
    2. 5.2 训练阶段比较
    3. 5.3 验证结果和指标
  9. 测试模型
    1. 6.1 推理设置和方法
      1. 6.1.1 通用用户测试方法
    2. 6.2 测试结果和可视化分析
      1. 6.2.1 可视化性能评估
    3. 6.3 定量性能指标
  10. 将模型迁移至 TI MCU (C2000 – F28P55x)【入门级】
  11. 将模型迁移至 TI MCU (C2000 – F28P55x)【开发人员级别】
    1. 8.1 编译前提条件
      1. 8.1.1 必需的 TI 软件组件
      2. 8.1.2 环境设置过程
    2. 8.2 配置文件设置
      1. 8.2.1 配置文件结构
        1. 8.2.1.1 需要反量化标志的模型
      2. 8.2.2 回归模型专属配置
        1. 8.2.2.1 输出反量化标志
        2. 8.2.2.2 编译器常量修改
        3. 8.2.2.3 编译字典更新
    3. 8.3 编译处理流程
      1. 8.3.1 启动编译
      2. 8.3.2 编译阶段
      3. 8.3.3 需要注意的常见问题
  12. MCU 工程设置
    1. 9.1 为 NPU 应用创建 CCS 工程
    2. 9.2 了解 NPU 接口
      1. 9.2.1 主要接口组件
      2. 9.2.2 基本使用模式
  13. 10在嵌入式环境中测试模型
    1. 10.1 可视化性能评估
    2. 10.2 定量性能指标
  14. 11NPU 在实时信号链中的集成
    1. 11.1 应用方框图
    2. 11.2 应用代码实现
    3. 11.3 所使用的硬件组件
    4. 11.4 硬件验证结果
      1. 11.4.1 输入信号特性
      2. 11.4.2 神经网络输出分析
  15. 12关键设计决策和影响
    1. 12.1 NPU 数值处理
      1. 12.1.1 纯整数架构
      2. 12.1.2 负值与浮点值处理
    2. 12.2 支持的神经网络层和约束
      1. 12.2.1 支持的层类型
        1. 12.2.1.1 卷积层
        2. 12.2.1.2 其他核心层
        3. 12.2.1.3 灵活性
    3. 12.3 模型复杂度和大小限制
      1. 12.3.1 内存约束和模型大小
      2. 12.3.2 优化流程和性能权衡
  16. 13基准测试
    1. 13.1 模型性能比较
      1. 13.1.1 128 神经元模型
      2. 13.1.2 64 神经元模型
      3. 13.1.3 16 神经元模型
      4. 13.1.4 参考基准测试
    2. 13.2 性能分析
      1. 13.2.1 模型选择权衡
      2. 13.2.2 CPU 与 NPU 性能对比
    3. 13.3 流水线级时序测量
  17. 14总结
    1. 14.1 关键功能和约束
    2. 14.2 开发工作流程
    3. 14.3 模型设计注意事项
    4. 14.4 实现挑战和解决方案
    5. 14.5 更广泛的应用
  18. 15参考资料

模型架构设计

正弦函数逼近器采用多层感知器 (MLP),专为 F28P55x NPU 进行资源约束设计:

SineApproximator(
  (regressor): Sequential (
    (0): Linear(in_features=1, out_features=64, bias=True)
    (1): ReLU(inplace=True)
    (2): Linear(in_features=64, out_features=64, bias=True)
    (3): ReLU(inplace=True)
    (4): Linear(in_features=64, out_features=1, bias=True)))

代码 1:Sine_64_Model 的正弦逼近器核心架构

该架构包含几个专门用于 NPU 部署的关键设计决策:

  • 输入层:单个神经元输入,接受角度值(映射到 0-2π 弧度)。
  • 隐藏层:选用两层各 64 神经元的隐藏层,以兼顾精度与资源效率;而该 NPU 实际可支持每层最高 128 神经元的模型。
  • 激活函数:选择 ReLU 激活函数,以兼顾计算效率与量化友好性。
  • 输出层:单个神经元输出,用于生成预测的正弦值(范围为 -1 至 +1)。
 Sine_64_Model 的正弦逼近器核心架构图 3-1 Sine_64_Model 的正弦逼近器核心架构

模型架构规模严格依据 F28P55x NPU 的内存与算力设计。关键约束为总参数量,而非单层神经元数量。我们的架构(层大小为 1×64、64×64 和 64×1)产生了总共 4,353 个参数,在精度与资源利用率之间实现了平衡。虽然该器件支持每层可容纳多达 128 个神经元的模型,但基于精度和延迟考虑因素,选择了 64 神经元配置。没有特征提取器的大型网络(例如每层使用 512 或 1024 个神经元的网络)会超出 NPU 的可用内存。工程师针对该平台设计模型时,需重点关注总参数预算。这种资源受限型模型设计方法广泛应用于各类边缘 AI 实现方案,受内存空间、处理能力及能效预算限制,需精细优化神经网络架构,以确保在既定硬件约束下实现最优性能。