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参考资料

配置文件结构

编译正弦函数模型的典型 config.yaml 文件包含以下核心配置段:

common:  # The common section can be plainly copied as it is
    target_module: 'timeseries'
    task_type: 'generic_timeseries_regression'
    target_device: 'F28P55'
    
dataset:
    dataset_name: Sine # Can be anything, used for directory name 
    enable: False      # Please note the 'False'. Since model is already trained. 
training:
enable: False  # Please note the 'False'. Since model is already trained.     model_name: 'SineModel_1e-05_160_64_Dequant'   # Can be anything, used for  
                                                     directory name 
    output_int: False # We need the model to dequantize the values after 
                              running on NPU and return float value
compilation:
    enable: True
    model_path: "path//to//SineModel_1e-05_160_64_Dequant.onnx"

代码 5:配置文件示例

各配置段在编译流程中承担特定作用:

  • 常用设置:定义基本任务类型和目标硬件。
    • task_type 标识机器学习任务类别。
    • target_device 启用 F28P55x 专属优化。
  • 数据集设置:控制数据集处理行为。
    • 使用预训练模型时通常禁用。
  • 训练设置:配置训练参数。
    • output_int:将此值设置为 False,对于回归任务至关重要,用于验证浮点输出是否正确。
    • 预训练模型通常禁用训练。
  • 编译设置:控制模型转换。
    • enable:设为 True 会激活编译阶段。
    • model_path 指定带反量化层的 ONNX 模型的位置。