Skip to main content
Version: Current

第一部分:入门篇

1. TacoAI taNNTC 简介

1.1 概述

本手册旨在为开发者提供详尽的技术指导,帮助您将主流深度学习框架训练的模型高效转换、部署至 TOPSFuture EA65xx NPU 硬件平台。

TacoAI taNNTC 可负责将来自主流深度学习框架(如 TensorFlow、PyTorch、ONNX 等)的预训练模型,进行包括图优化、算子融合、量化(如 INT8、FP16)、编译和内存布局优化在内的一系列转换,最终生成可在 EA65xx NPU 上高效执行的二进制指令或模型格式。

1.2 典型部署流程

1. 模型导入与转换 (Import)

  • 功能描述:此阶段旨在将源自主流深度学习框架(如 TensorFlow、ONNX 等)的模型,转换为 taNNTC 的标准中间表示 (Intermediate Representation, IR)。
  • 执行命令pegasus import ...
  • 输出产物:操作完成后,生成以下两种文件,合称为中间表示 (IR):
    • 网络结构文件 (.json):描述模型的拓扑结构。
    • 网络权重文件 (.data):存储模型的参数权重。

2. 模型预处理配置文件生成 (Generate)

  • 功能描述:此阶段根据导入模型后生成的 IR 文件,自动或手动创建一个 YAML 配置文件。该文件详细定义了模型在推理前对输入数据(如图像)的预处理步骤(例如:Resize、Crop、Normalization 等)以及对模型输出的后处理步骤(例如:解码、排序等)。这确保了后续量化、验证和最终部署时数据处理逻辑的完全一致。
  • 执行命令pegasus generate ...
  • 输出产物
    • 输入端预处理文件 (inputmeta.yml):定义输入数据的处理流程。
    • 输出端后处理文件 (postprocess_file.yml):定义模型输出的解析流程。

3. 模型优化与量化 (Optimize & Quantize)

  • 功能描述:此阶段是核心的性能优化步骤。它接收上一阶段生成的 IR 文件,执行模型优化并计算量化参数。该过程利用校准数据集分析张量的数据分布,从而生成最优的定点转换参数。
  • 执行命令pegasus quantize ...
  • 输出产物:一个量化表 (.quantize) 文件,记录了用于低精度转换的缩放因子 (scale) 和零点 (zero-point) 等关键信息。

4. (可选) PC 端推理验证 (Verification)

  • 功能描述:此为一可选的验证与调试环节。在执行最终导出之前,可在开发主机(PC/服务器)上对量化后的模型进行推理,用于评估量化引入的精度影响,确保模型行为符合预期。
  • 执行命令pegasus inference ...

5. 模型导出 (Export)

  • 功能描述:此阶段为工具链的最终步骤,负责生成可部署的硬件模型。该过程将中间表示 (IR) 与量化表 (.quantize) 相结合,经过 NPU 专用的图优化与代码生成,最终编译并打包成一个高度优化的可执行文件。
  • 执行命令pegasus export ovxlib ...
  • 输出产物:一个二进制图文件 (.nb),该文件是可直接在目标硬件上运行的最终部署单元。

6. 板端推理 (On-device Inference)

  • 功能描述:此为最终的部署与执行环节,独立于 taNNTC 工具链。编译生成的 .nb 文件被部署到搭载 EA65 系列 NPU 的目标硬件上。而设备端的 TaRuntime 负责加载该二进制图文件,并通过 NPU 驱动执行高性能的推理计算。

1.3 工具链特性

  • 输入支持
    • 框架模型:TensorFlow (2.3.x ~ 2.17.x)、TFLite、Caffe、ONNX (1.16.2)、PyTorch (2.3.0)、Keras、Darknet
    • 数据集格式:Text / NumPy / SQLite
  • 量化支持
    • 数据类型:uint8、int8、int16、bfloat16、float16、float32
    • 量化算法:KL 散度、滑动平均、自动混合精度等
  • 输出支持
    • 格式:二进制图文件 .nb

2. 系统要求与环境安装

2.1 系统要求

资源要求
CPUIntel Core i5-6500 或以上(支持 AVX)
GPU(可选)NVIDIA CUDA 架构显卡
RAM≥ 8 GB
磁盘≥ 160 GB
OSUbuntu 18.04 / 20.04 / 22.04 64 位
Python3.6 / 3.8 / 3.10

2.2 环境安装

taNNTC 工具链通过 Docker 容器提供,可简化环境配置。

  1. 拉取 Docker 镜像
docker pull harbor.topsfuture.com:9099/mes20/ta-nntc:latest
  1. 创建并进入 Docker 容器
# 创建并后台运行容器,并将当前目录映射到容器的 /home 目录
docker run -itd --name tool_chain -v $(pwd):/home harbor.topsfuture.com:9099/mes20/ta-nntc:latest

# 启动容器(如果已停止)
docker start tool_chain

# 进入容器的交互式终端
docker exec -it tool_chain /bin/bash