【NPU 系列专栏 1 -- NPU TOPS 是什么?】

NPUQ TOPS是什么?

NPU (Neural Processing Unit,神经处理单元)是一种专门为加速神经网络Q计算而设计的硬件加速器。它常用于人工智能(Al)和深度学习(DL)任务,例如图像识别、自然语言处理和推荐系统等。TOPS (Tera Operations Per Second.万亿次操作每秒)是衡量NPU性能的一个常用指标。它表示处理器每秒钟可以执行的运算操作次数,单位为万亿次操作。

为什么TOPS 重要?

TOPS 是衡量NPU 性能的一个关键指标,美似于CPU的GHz或FLOPS (Floating Point Operations Per Second,浮点运算每秒)。 较高的 TOPS 表示处理器能够在更短的时间内处理更多的计算操作,从而提高整个系统的性能和效率。 例如,如果一个NPU在1秒钟内能够执行1万亿次操作,那么它的性能就是 1TOPS。

NPU 使用举例

智能手机中的NPU

现代智能手机中常常集成了高性能的NPU,用于处理各种Al任务,以下是个假设的例子: 假设某智能手机的NPU 具有10TOPS的性能,这意味它可以每秒执行10万亿次操作,这种性能可以支持以下任务:

  1. 实时图像处理:如人脸识别或拍照时的场景检测和优化。
  2. 语音助手:如 Siri、Google Assistant 等的实时语音识别和自然语言处理。
  3. 增强现实(AR):如在拍摄视频时实时添加虚拟对象。

自动驾驶汽车中的NPU

自动驾驶汽车需要处理大量的传感器数据,包括摄像头、激光雷达等。假设某自动驾驶汽车的NPU 具有200TOPS的性能,这意味它可 以每秒执行200万亿次操作。这种性能可以支持以下任务:

  1. 对象检测:实时识别道路上的车辆、行人、交通标志等。
  2. 路径规划:根据实时数据进行复杂的路径计算和决策。
  3. 融合传感器数据:将来自多个传感器的数据进行实时融合,以生成一个高精度的环境模型。

Terms

FLOPS:浮点运算每秒,用于衡量处理器在浮点运算任务中的性能。

AI加速器:专门用于加速Al和DL 任务的硬件,包括 GPU、TPU (Tensor Processing Unit) 和NPU. 暂切坝借,白然语言处理和推荐系统等领域。

深度学习:一种以神经网络为基础的机器学习方法,广泛用于计算机视觉、自然语言处理和推荐系统等领域。

Summary

NPU是专门用于加速神经网络计算的处理器,TOPS 是衡量其性能的关键指标。较高的TOPS表示处理器能够在更短的时间内处理更多 的计算操作,从而提高整个系统的性能和效率。通过具体的例子,我们可以更好地理解 TOPS 在不同应用场景中的重要性。

【NPU 系列专栏 1 -- NPU TOPS 是什么?】_npu的关键指标-CSDN博客

NPU算力

OpenCVQ 算法会消耗很大一部分自动笃驶芯片的算力,在车上堆摄像头的同时也需要堆TOPS,那么视觉处理能力为什么用T 呢?通常计算机视觉算法是基于卷积神经网络的,而卷积神经网络的本质是累积累加算法(Multiply Accumulate)。下图是一个非常生动的卷积过程

MAC阵列简介

MAC (Multiply-Accumulate)阵列是电子计算领域中的一个基本单元,广泛应用于数字信号处理(DSP) 高效数学计算的领域。MAC 单元能够执行乘积累加运算,即在一个操作周期内同时进行乘法和加法运算。 一个MAC单元基本上执行以下操作:

A = A * B + C

MAC阵列特点

1.高效计算:MAC能够在单个操作周期内完成乘法和加法运算,大大提高了计算效率。

2.广泛应用:在数字信号处理、图像处理、机器学习等领域,MAC 是关键的计算单元。

3.井行处理:多个MAC单元可以并行工作,加速复杂计算任务。

MAC阵列的结构

一个典型的MAC 阵列由多个MAC单元组成,每个MAC单元独立进行乘积累加运算。通过并行计算和流水线技术,MAC阵列可以显著 提高计算性能。

MAC阵列架构示例

假设我们有一个4x4的MAC阵列,表示有4行4列,共16个MAC单元。每个单元独立执行如下操作:

sum_{1j} = Sum_{ij} + (A_i*B_j)

其中,(i)和(j)分别表示MAC单元的行和列素引。

MAC阵列计算举例

假设我们有两个向量({A})和({B}),并且我们希望计算它们的点积。向量({A])和(《B})分别为:

{A} = [a_1, a_2, a_3, a_4]
{B}=[b_1,b_2,b_3,b_4]

我们将使用一个1x4的MAC阵列来计算它们的点积:

步骤

1.初始化:设定初始值{Sum}=0.

2.逐步计算:

第一步:{Sum} ={Sum}+(a_1*b_1)

第二步:{Sum)=[Sumj+(a_2'b_2)。

第三步:{Sum}={Sum}+(a_3b_3)。

第四步:{Sum}=[Sum}+(a_4“b_4)

示例计算

假设: {A}=[2.3,4,5] {B)=[1.0,-1.2]

根据上述步骤,我们计算点积:

1.初始化:{Sumj=0)

2.第一步:{Sumj=0+(2*1)=2)

3.第二步:{Sumj=2+((3*0)=2)

4.第三步:{Sumj=2+(4^-1)=2-4=-2)

5.第四步:{Sumj=-2+(5*2)=-2+10=8)

最终结果: {A} cdot {B} = 8

TOPS 计算方法

图:斯拉自动驾驶FSD芯片

在NPU中,芯片都用MAC 阵列(乘积累加运算,MAC/ Mutiply Accumulate)作为NPU给神经网络加速,许多运算(如卷积运算、点积运 算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解为数个MAC指令,因此可以提高上述运算的效率.

MAC矩阵是Al芯片的核心。TOPS是MAC在1秒内操作的数,计算公式为:

1TOPS = MAC矩阵行*MAC矩阵列*2”主频;

公式中的2可理解为一个MACC(乘加运算)为一次乘法和一次加法,为2次运算操作。

下面以特斯拉自动驾驶QFSD芯片为例。 特斯拉资料中,该芯片的目标是自主4级和5级。FSD芯片采用三星(德克萨斯州奥斯订的工厂)的14纳米工艺技术制造,集成了3个四核Cortex-A72集群,共有12个CPU,工作频率为2.2GHz,1个(ARM的)Mali G71 MP12 GPU,2个NPU工作频率为2GHz,每个周期,从SRAM 读取256byte 字节的激活数据和另外128byte的权重数据到MAC阵列中。

每个NPU拥有96x96 MAC,另外在精度方面,乘法为8x8bit,加法为32b1t,两种数据类型的选择很大程度上取决于他们降功耗的努力 (例32bitFp加法器的功耗大约是32bit整数加法器的9倍。

在2GHz的工作频率下,NPU单核算力为36.86TOPS

1TOPS=MAC矩阵行*MAC矩阵列*2*主频=96 *96 *2*26-36.864 TOPS(单核)

在点积运算之后,数据转移到激活硬件,最后写入缓存,以汇总结果。

FSD支持许多激活功能,包括ReLU、SiLU和 TanH。每个周期,将128byte的数据写回SRAM。所有操作同时且连续地进行,重复直到 成整个计算。

推荐阅读: NPU、CPU、GPU算力及算力计算方式_风禾万里-GitCode 开源社区 https://zhuanlan.zhihu.com/p/393418195

【NPU 系列专栏 1.1 -- NPU TOPS 算力的计算方式】_npu的mac单元-CSDN博客

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值