NPU硬件架构及张量技术开发

NPU硬件架构及张量技术开发
NPU 系统介绍
V853 芯片内置一颗 NPU,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。
NPU 系统架构
NPU 的系统架构如下图所示:
 
上层的应用程序可以通过加载模型与数据到 NPU 进行计算,也可以使用 NPU 提供的软件 API 操作 NPU 执行计算。
NPU包括三个部分:可编程引擎(Programmable Engines,PPU)、神经网络引擎(Neural Network Engine,NN)和各级缓存。
可编程引擎可以使用 EVIS 硬件加速指令与 Shader 语言进行编程,也可以实现激活函数等操作。
神经网络引擎包含 NN 核心与 Tensor Process Fabric(TPF,图中简写为 Fabric) 两个部分。NN核心一般计算卷积操作, Tensor Process Fabric 则是作为 NN 核心中的高速数据交换的通路。算子是由可编程引擎与神经网络引擎共同实现的。
NPU 支持 UINT8,INT8,INT16 三种数据格式。
NPU 模型转换
NPU 使用的模型是 NPU 自定义的一类模型结构,不能直接将网络训练出的模型直接导入 NPU 进行计算。这就需要将网络训练出的转换模型到 NPU 的模型上。
NPU 的模型转换步骤如下图所示:
 
NPU 模型转换包括准备阶段、量化阶段与验证阶段。
准备阶段
首先我们把准备好模型使用工具导入,并创建配置文件。
这时候工具会把模型导入并转换为 NPU 所使用的网络模型、权重模型与配置文件。
配置文件用于对网络的输入和输出的参数进行描述以及配置。这些参数包括输入/输出 tensor 的形状、归一化系数 (均值/零点)、图像格式、tensor 的输出格式、后处理方式等等。
量化阶段
由于训练好的神经网络对数据精度以及噪声的不敏感,因此可以通过量化将参数从浮点数转换为定点数。这样做有两个优点:
(1)减少了数据量,进而可以使用容量更小的存储设备,节省了成本;
(2)由于数据量减少,浮点转化为定点数也大大降低了系统的计算量,也提高了计算的速度。
但是量化也有一个致命缺陷——会导致精度的丢失。
由于浮点数转换为定点数时会大大降低数据量,导致实际的权重参数准确度降低。在简单的网络里这不是什么大问题,但是如果是复杂的多层多模型的网络,每一层微小的误差都会导致最终数据的错误。
那么,可以不量化直接使用原来的数据吗?当然是可以的。
但是由于使用的是浮点数,无法将数据导入到只支持定点运算的 NN 核心进行计算,这就需要可编程引擎来代替 NN 核进行计算,这样可以大大降低运算效率。
另外,在进行量化过程时,不仅对参数进行了量化,也会对输入输出的数据进行量化。如果模型没有输入数据,就不知道输入输出的数据范围。这时候我们就需要准备一些具有代表性的输入来参与量化。这些输入数据一般从训练模型的数据集里获得,例如图片数据集里的图片。
另外选择的数据集不一定要把所有训练数据全部加入量化,通常我们选择几百张能够代表所有场景的输入数据就即可。理论上说,量化数据放入得越多,量化后精度可能更好,但是到达一定阈值后效果增长将会非常缓慢甚至不再增长。
这里是一个因为错误的量化导致精度丢失并识别失败的案例:
 
而正常情况应该是这样的:
 
验证阶段
由于上一阶段对模型进行了量化导致了精度的丢失,就需要对每个阶段的模型进行验证,对比结果是否一致。
首先我们需要使用非量化情况下的模型运行生成每一层的 tensor 作为 Golden tensor。输入的数据可以是数据集中的任意一个数据。然后量化后使用预推理相同的数据再次输出一次 tensor,对比这一次输出的每一层的 tensor 与 Golden tensor 的差别。
如果差别较大可以尝试更换量化模型和量化方式。差别不大即可使用 IDE 进行仿真。也可以直接部署到 V853 上进行测试。
此时测试同样会输出 tensor 数据,对比这一次输出的每一层的 tensor 与 Golden tensor 的差别,差别不大即可集成到 APP 中了。
模型转换实操
NPU 模型的部署
NPU 系统的模型部署流程一般包括以下四个部分:
 
数据预处理
数据预处理即将数据处理到适合模型使用的过程。
这里就以一个图像主体识别案例来举例:摄像头捕获到了图像数据,其数据格式是YUV的,而我们的模型使用的输入数据是RGB的数据,所以需要使用前处理将 YUV 数据转换到 RGB。
模型部署实操
接下来是将模型加载到 NPU 内,初始化 NPU 的环境与分配内存,然后将之前预处理的数据交给 NPU 进行计算。计算后 NPU 会输出一个 tensor 数据,这时候就需要数据后处理,将 tensor 数据转换为具体的坐标与类型,就可以反馈到上层应用程序做应用的处理了。
部署实操详见:NPU 模型的部署
FAQ
(1)NPU 支持调用算子级别的运算吗?支持哪些算子?
NPU 默认使用的是网络级别的调用,但是 NPU 同时也支持算子级别的调用。不过由于直接调用算子导致数据需要到内存里交换,不能通过 NPU 内置的SRAM交换,大大降低了效率,不推荐这样的做法。
NPU 使用的是双算子结构,其中的神经网络引擎使用的是硬算子,其性能很高,速度很快;而可编程引擎属于软算子,可以覆盖硬件算子没有支持的一些算子结构。硬算子覆盖了大部分的卷积操作。而软算子可以通过编程实现算子。具体的算子支持表格可以到文档《Operation Mapping and Support》查询。
(2)NPU 是否支持 FP16,FP32?
不支持。
(3)NPU 支持多模型运行吗?
支持多模型运行
(4)是否可以使用自己的量化函数量化?
可以的,只需要输出的量化表符合格式即可。
(5)NPU 支持的模型
V853 支持的常用深度学习框架模型有:
  • TensorFlow
  • Caffe
  • TFLite
  • Keras
  • Pytorch
  • Onnx NN
  • Darknet
  • and so on...
  • 开发板原理图
  • V853 开发板由全志合作伙伴 索智科技 根据全志提供的参考设计修改设计。
  • 本章节将对开发板几个主要的部件的原理图进行说明,方便快速上手开发板的硬件资料。
  • 开发板硬件框图如下:
 
  • 模块介绍
  • GPIO 分配
  • 此表格为 V853 部分重要的 GPIO 的分配表,> 表示对IO的另外一个复用,完整的 GPIO 分配请参阅原理图。

GPIO GROUP

用途

接口

PA[0:21]

MIPI CSI

摄像头 CAMERA FPC 连接器

PC[0:11]

eMMC

板载eMMC

> PC[0:11]

SPF

板载SOIC16焊盘(未贴装)

> PC[0:6]

SPI0

板载SOIC8焊盘(未贴装)

PD[0:22]

RGB(HV)LCD

RGB-LCD FPC 连接器

> PD[1:7]

MIPI-DSI

MIPI-LCD 连接器

> PD[13:14]

IR-CUT

摄像头 IR 滤光片驱动

PE[0:17]

DVP-CSI

板载2x16p连接器母座

> PE[0:15]

RMII

板载IP101GR,百兆以太网

> PE[8:15]

XR829 蓝牙

板载XR829模块

PF[0:6]

SDC0

板载TF卡槽

PG[0:7]

XR829 WLAN

板载XR829模块

PH[0:1]

UART 3

UART3 排针

> PH[0:1]

GPS

GPS 3.5mm 连接器

PH[0:4]

I2S

I2S 排针

PH[5:8]

CTP

触摸屏FPC连接器

PH[9:10]

UART0

UART0排针

PI[1:2]

PMU TWI

板载 AXP2101 通讯使用

PI[3:4]

TWI3

SC7A20 3轴数字加速度计(未贴装)DA380B 惯性传感器

  • DRAM(DDR3)
  • 开发板使用 Rayson晶存 所生产的 RS256M16VRDK DDR3 512MB 内存,BGA96 封装。
  • 下图为DRAM原理图,其中颗粒端的 SDQ 信号线乱序是 DDR本身的特性,SDQ 线在组内的顺序是可以改变的,一共分两组:第一组 SDQ0-SDQ7+SDQSN/P0+SDQM0,第二组 SDQ8-SDQ16+SDQSN/P1+SDQM1 这样可以方便内存的 PCB 布线。
  • V853 芯片支持双贴DRAM、同时也支持单帖双RANK的DRAM,最大8Gb。
    • Memory(eMMC)
    • 开发板 Memory 使用的是 珠海妙存科技设计的 AT70B08G3 eMMC ,容量为 8GB,运行在 8bit 模式下。
    • 其中 PC2,PC3 脚为 BOOT SEL 启动顺序选择脚,通过上拉或下拉执行启动。
    • 开发板预留了SPI NOR、SPI NAND的焊盘,可以焊接 V853 芯片支持的 SPI NOR、SPI NAND 储存器

BOOT SEL 0

BOOT SEL 1

1

2

3

4

5

6

7

8

备注

0

0

SPI NAND

SPI NOR(4线)

SPI NOR(1线)

USB FEL

         

0

1

SPI NOR(4线)

SPI NOR(1线)

SPI NAND

USB FEL

       

快速启动使用

1

0

SDC 0

SPI NAND

SPI NOR(4线)

SPI NOR(1线)

UART BRUN

USB FEL

     

1

1

SDC 0

SPI NOR(4线)

SPI NOR(1线)

EMMC2 USR

EMMC BOOT

SPI0 NAND

UART BURN

USB FEL

默认

    • MIPI 摄像头(MIPI CSI)
    • V853 开发板板载 40Pin FPC 连接器引出了全部 MIPI CSI 资源,支持双2lane摄像头与单4lane摄像头,开发板默认提供 1080P 双目摄像头方案,型号:GC2063。
      • DVP 摄像头(DVP CSI)
      • V853 开发板使用排母连接器引出了DVP所需的IO,由于PE接口存在复用关系,使用时请注意其复用关系。
        • 屏幕(LCD)
        • V853 开发板配套 7寸 LCD屏幕,配有相对应的电容式触摸屏幕。
        • 屏幕使用MIPI DSI接口,连接到板子对应的 MIPI LCD FPC 连接器上,触摸屏则连接到 CTP 接口上。
        • 同时开发板也引出了 RGB666 FPC 连接器,可以连接RGB屏幕(带触摸)
          • 音频输入部分(MICIN、LINEIN)
          • V853 开发板提供2路MIC音频输入与LINE输入,当使用LINE输入时复用MIC的接口。使用内部音频Codec,也可以使用 Inter-IC Sound (I2S)总线外接外部数字Codec,实现麦克风阵列与声源定位。
            • 音频输出部分(LINEOUT)
            • V853 开发板提供一路差分音频输出接口,并使用CG8302功放连接到扬声器,音频输出使用内部音频Codec,也可以使用 Inter-IC Sound (I2S)总线外接外部数字Codec获得更好的音质。
 
  • Micro SD卡(TF Card)
  • Micro SD卡(又称TF卡) 板载自弹式TF卡槽,卡槽所有引脚均使用ESD器件加以保护。
  • 开发板预留了管理Micro SD卡供电防止烧毁低内阻的Micro SD卡的保护电路,开发板默认不贴装这一部分保护电路。
  • MicroSD卡所使用的SDIO接口均使用芯片内部上拉,无需外部上拉电路。
    • 有线网络(Network)
    • V853 开发板板载了IP101GR百兆以太网收发器,连接网线即可连接上网。
      • 无线网络(Wireless Network)
      • V853 开发板板载了XR829 Wi-Fi,蓝牙模块,支持2.4G IEEE 802.11 b/g/n WLAN,Bluetooth v2.1/4.0/4.2。Wi-Fi通过SDIO总线与 V853 通讯,蓝牙通过 UART 通讯。
        • 电源(Poewr Tree)
        • 开发板使用同为全志自研的 AXP2101 PMU 作为电源管模块。可支持DC 12V输入、USB 5V输入和电池输入。其使用 TWI 总线与 V853 进行通讯。
        • AXP2101 为通用 PMU,可以适配多种芯片,提供了多路电源输出,不需要使用的电源部分可以将其关闭。
        • 电源输出分配见下图(红色为启用电源输出,黑色为未启用电源输出)
          • 按键(Button)
          • V853 开发板共有8个按键,其中按键 VOL+ VOL- MENU ENTER HOME 按键连接在 GPADC 上,通过识别当前ADC的电压识别按键键值。另外 UBOOT 按键连接到 V853 芯片上的 FEL 引脚,按下后可以进行刷机调试操作。
          • 还有PWR 键与 RESET 键,是连接到 AXP2101 PMU上的,用于开机与 RESET 芯片。
            • 串口(UART)
            • V853 开发板提供 2个 独立的UART调试口,分别是 UART0 与 UART3,默认配置 UART0 为 Arm 核串口调试口,UART3 为 E907 核调试口。
            • 同时 UART3 也可复用为 GPS 的通讯接口,板载 3.5mm 连接器进行连接。
            • 全志V853芯片介绍
            • 【全志V853-高性能边缘AI视觉处理芯片】
            • V853 是一颗面向智能视觉领域推出的新一代高性能、低功耗的处理器SOC,可广泛用于智能门锁、智能考勤门禁、网络摄像头、行车记录仪、智能台灯等智能化升级相关行业。
            • V853 集成Arm Cortex-A7和RISC-V E907 双CPU,内置最大 1T 算力 NPU,使用全志自研 Smart 视频引擎,最大支持5M@25fps H.265编码和5M@25fps H.264编解码,同时集成高性能 ISP 图像处理器,可为客户提供专业级图像质量。V853 还支持 16-bit DDR3/DDR3L,满足各类产品高带宽需求;支持 4lane MIPI-CSI/DVP/MIPI-DSI/RGB 等丰富的专用视频输入输出接口,满足各类AI视觉产品需求;采用先进的22nm工艺,具有更优的功耗和更小的芯片面积。
            • 同时,全志为 V853 配套提供了稳定、易用的 Linux SDK和软硬件参考设计,可以帮助客户快速实现产品量产。
            • V853芯片应用场景:
              • 芯片框图
                • 参数规格
                • CPU
                • Arm Cortex-A7@1GHz
                • 32 KB I-cache, 32 KB D-cache
                • 128 KB L2 cache
                • RISC-V E907@600MHz
                • 16 KB I-cache, 16 KB D-cache
                  • NPU
                  • Maximum perormance up to 1 Tops
                  • Emdedded 128KB internal buffer
                  • Supports deep learning frameworks: TensorFlow, Caffe, Tflite, Pytorch, Onnx NN, and so on
                    • Memory
                    • 16-bit DDR3/DDR3L SDRAM, supporting maximum capacity of 1GB
                    • SD3.0/eMMC 5.1 interface
                    • Supports SPI Nor/SPI Nand Flash
                      • Video Engine
                      • Video encoder
                      •     - H.264/H.265 up to 4K@15fps or 5M@25fps
                      •      - JPEG up tp 1080p@60fps
                      •  
                      • Video decoder
                      •     - Supports H.264 BP/MP/HP, JPEG
                      •     - Real-time multiple streams H.264 encoding capability: 5M@25fps
                      •     - JPEG snapshot performance of 1080P@60fps independently
                        • Display Engine
                        • Allwinner SmartColor post processing for an excellent display experience
                        • Supports 2 video channels and 1 UI channel
                        • Supports G2D hardware accelerator including rotate, mixer, scaler functionns
                          • Video Input
                          • ISP
                          •     - Maxumum performance of 5M@30fps and maximum resolution of 3072 * 1772
                          •     - Adjustable 3A functions (AE, AWB, AF), and 3A parameters are adjustable
                          •     - Provides ISP tuning tools for the PC
                          • VIPP
                          •     - Four VIPP YUV422 or YUV420 outputs
                          •     - Maximum performance of 5M@30fps, maximum resolution of 3072 * 1772
                          • 8-/10-/12-/16-bit parallel CSI interface
                          •     - Supports digital camera (DC), BT.601, BT.656, BT.1120 protocol
                          •     - Maximum video capture resolution up to 5M@30fps
                          • 4-lane MIPI CSI interface
                          •     - Supports DOL WDR mode and splitting into 2*2-lane MIPI CSI
                          •     - Supperts 4-ch VC de-interleaver function
                          •     - Maximum video caputure resolution up to 5M@30fps
                            • Video Out
                            • RGB LCD output interface up to 1920 x 1080@60fps
                            • 4-lane MIPI DSI interface up to 1920 x 1080@60fps
                              • Audio
                              • 1 DAC and 2 ADCs
                              • Analog audio interfaces: MICIN1P/N, MICIN2P/N, LINEOUTRP/N
                              • Digital audio interfaces: I2S/PCM *2 , DMIC
                                • Security System
                                • AES, DES, 3DES encryption and decryption algorithms
                                • RSA/ECC signature verigication algorithm
                                • MD5/SHA and HMAC tamper proofing
                                • PRNG/TRRNG hardware random number generator
                                • Integrated 2Kbits OTP storage space
                                  • Connectivity
                                  • USB2.0 DRD, SDIO 3.0, SPI *4, UART * 4, TWI * 5, WIEGAND
                                  • PWM (12-ch), GPADC (4-ch)
                                  • 10/100/1000M EMAC with RMII and RGMII interfaces
                                    • Package
                                    • LFBGA 318, 12mm * 12 mm, 0.5mm ball pitch
                                      • Chip process
                                      • 22nm
                                        • 不同版本芯片的区别
                                        • V85x 共有 V851s、V851se、V853s、V853 四个型号,规格类似,都是针对AI视觉、高清编码推出的芯片,主要应该在带camera的产品上,规格、性能略有差别,可以根据实际产品的应用形态选择。
                                        • 各型号具体配置差异如下表:

型号

V851s

V851se

V853s

V853

NPU

0.5T

0.5T

0.8T

1T

DDR

内置64M DDR2

内置64M DDR2

内置128M DDR3

外置最高1G DDR3/DDR3L

H264编码

5M@20fps,4M@30fps

5M@20fps,4M@30fps

5M@25fps,4M@30fps

5M@25fps,4M@30fps

H256编码

5M@20fps,4M@30fps

5M@20fps,4M@30fps

5M@25fps,4M@30fps

5M@25fps,4M@30fps

ISP性能

4M

4M

5M

5M

视频输出

sRGB 8bit, MIPI 2lane

RGB888, MIPI 4lane

RGB888, MIPI 4lane

视频输入

DVP10Bit, MIPI CSI 4lane

DVP10Bit, MIPI CSI 4lane

DVP12Bit, MIPI CSI 4lane

DVP12Bit, MIPI CSI 4lane

分辨率

4M@30fps

4M@30fps

5M@30fps

5M@30fps

封装

QFN88

QFN88

BGA318

BGA318

备注

 

V851se内置百兆以太网,复用了显示输出,无法连接显示屏(可以使用SPI,IIC显示屏)

 

引脚封装完全一致,V853换V853s仅需摘除V853的外置内存即可(V853s的内存线是GND)

 
参考文献链接
https://v853.docs.aw-ol.com/npu/dev_npu/
posted @   吴建明wujianming  阅读(1611)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-04-19 2023上海汽车展市场解析
2022-04-19 越南造车IPO估值3800亿
2021-04-19 AIFramework基本概念整理
2020-04-19 Camera Calibration 相机标定
2020-04-19 目标跟踪与分割
2020-04-19 端到端全景分割
2020-04-19 小目标检测技术分析
点击右上角即可分享
微信分享提示