AI智能总结
【中泰电子】AI系列之NPU:专为端侧AI而生的神经网络加速器 分析师: 王芳S0740521120002,杨旭S0740521120001,李雪峰S0740522080004,丁贝渝S0740524090001 目录 一、专为端侧AI而生的神经网络加速器 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 ◼人工智能的发展主要依赖两个领域的创新和演进:一是模仿人脑建立起来的数学模型和算法,其次是半导体集成电路AI芯片。AI的发展一直伴随着半导体芯片的演进,1989年贝尔实验室的杨立昆(Yann LeCun)等人一起开发了可以通过训练来识别手写邮政编码的神经网络,但那个时期训练一个深度学习卷积神经网络(ConvolutionalNeuralNetwork,CNN)需要长达3天,因此无法实际使用。硬件计算能力的不足,导致了当时AI科技泡沫的破灭。 ◼更高效的架构有利于推动AI加速成熟。英伟达早在1999年就发明了GPU,但直到2009年斯坦福大学才发表论文介绍了如何利用现代GPU实现远超过多核CPU的计算能力(超过70倍),把AI训练时间从几周缩短到了几小时。算力、模型一直是AI发展的要素,而芯片所代表的算力则是人工智能的底层基石。 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 ◼CPU(CentralProcessingUnit)中央处理器:是计算机的运算和控制核心(ControlUnit),是信息处理、程序运行的最终执行单元,主要功能是完成计算机的数据运算以及系统控制功能。 ◼CPU早期的高增长主要源自技术进步以及由此带来的应用拓展,2010年后则由需求端整体带动。CPU历史上增速最高的时期是1990s,出货量CAGR达到22%。供给端:AMD、IBM等芯片大厂加入竞争,多项核心技术取得重要突破;应用端:PC由商用为主,向家庭场景普及,生产力(办公软件)与娱乐(游戏)应用均蓬勃发展。2000s时代亦有良好增长,CAGR8%,技术的加速迭代带来应用场景突破,云服务兴起。2010年以后,CPU的增长主要在2020-2021年,疫情期间远程办公场景带来的PC和服务器需求增加。 来源:《Competition and innovation in the microprocessor industry: Does AMD spur Intel to innovate more》,JPR,Gartner,IDC,中泰证券研究所 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 ◼与CPU串行计算不同,GPU侧重并行计算。GPU(Graphics Processing Unit)最初是为了满足计算机游戏等图形处理需求而开发的,但凭借高并行计算和大规模数据处理能力,逐渐开始用于通用计算;GPGPU(通用GPU)减弱了GPU图形显示部分的能力,将其余部分全部投入到通用计算中,同时增加了专用向量、张量、矩阵运算指令,提升了浮点运算的精度和性能,以实现人工智能、专业计算等加速应用。 ➢早期传统图形处理器阶段(1980s-1990s中期以前):内置了一系列专用运算模块,如视频编解码加速引擎、2D加速引擎、图像渲染等; ➢固定功能阶段(1999年):NV发布GeForce 256,首次提出GPU概念,接管CPU的坐标变换和光照计算功能; ➢可编程shader阶段(2000-2005):NV率先引入了可编程的顶点和像素shader,标志着GPU从固定功能向可编程转变; ➢通用转型阶段(2006-2009):2006年NV推出CUDA平台,支持GPU通用编程,开启GPGPU时代,Tesla架构首次采用统一shader模型,标志着GPU从独立功能单元转变为通用浮点处理器,能执行更广泛的任务; ➢计算shader阶段(2009-2015):GPU突破传统图形处理的范畴,在非图形任务中发挥作用,如流处理和物理加速,采用SIMD架构与多线程管理;GPU在科学计算等领域得到应用,软件生态蓬勃发展,GPU成为一种重要的通用计算设备; ➢光线追踪与AI阶段(2015-2020):光线追踪是一种高质量渲染方法,随着GPU性能的大幅提升和硬件架构的改进,得以在实时渲染中得到应用,能呈现更逼真的图像,以NV为代表的公司将深度学习超级采样(DLSS)技术引入GPU,通过AI技术实现了在保持高质量图像的同时提高渲染速度,厂商在GPU中增加了专门的光线追踪加速器核心(如NV的RT核心)和AI处理核心(如NV的Tensor核心); ➢Mesh shader阶段(2020-2023):GPU算力提升至新台阶,Mesh使GPU能够更高效地处理复杂的几何图形,通过线程协作生成紧凑的网格(meshlets),减少了传统方法中的冗余计算和数据的传输,在游戏、VR、AR等方面有重要应用前景。 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 ◼传统CPU及GPU架构在处理AI任务时面临的瓶颈包括:算力、功耗、成本、内存/带宽瓶颈等。 ➢CPU的主要局限在于计算并行能力不足:传统的CPU架构在设计上更侧重于顺序执行和复杂逻辑控制,其核心数量和并行处理能力相对有限,在处理AI相关任务时速度较慢,无法满足AI应用的需求。 ➢GPU的主要局限在于功耗和成本:GPU擅长云端的大数据集计算,端侧的计算数据量相对云端更小,同时对功耗有严格限制,叠加成本因素,端侧应用受限。 ➢CPU与GPU均有内存及批处理限制问题:CPU和GPU计算过程均存在内存瓶颈,需要采用批处理方式加载数据和权重进行计算,难以同时满足高吞吐量和低延迟的需求。 1.1、与GPU定位云端AI不同,NPU是端侧AI时代新需求 ◼NPU是专门的神经网络加速器,主要用于AI相关计算加速。NPU(Neural Processing Unit)即神经网络处理单元,采用专门优化的神经网络计算架构,来处理特定的任务,主要被用于加速计算。通过对NPU硬件层面优化,能高效处理神经网络算法中矩阵乘法、卷积等数学运算。相较于GPU和CPU,NPU在AI计算上性能和能效有了明显提升,用来提高AI算法运行效率。 ◼NPU最早来自FPGA,大厂持续更新迭代。早期NPU主要基于高度灵活性和可编程性的FPGA实现。2010年,斯坦福大学研究人员提出了一种基于FPGA的神经网络加速器,可以实现高效的神经网络计算,随后使用FPGA设计NPU成为趋势。2013年,谷歌论文中介绍一款名为“Tensor Processing Unit”(TPU)的定制ASIC芯片,推动NPU发展。2018年,华为随后也推出了Ascend NPU,其独特的“达芬奇架构”支持广泛的AI应用场景。后续苹果于2017年发布首款端侧NPU芯片A11。 1.2、NPU是专用加速芯片,适用于乘法累加运算 ◼NPU泛指专门用于加速神经网络计算的处理器,主要用于推理场景,以高通NPU举例,主要架构资源包括:1)处理器执行的三种指令集(Scalar、Vector、Tensor)、2)紧密耦合内存(TCM)、3)DMA/BUS和L2缓存: ➢标量指令集(Scalar):用于控制流和通用计算;32位标量单元,每线程上下文32个寄存器,功能强大,能够独立处理轻量级DSP任务 ➢向量指令集(Vector):用于通用数据并行计算,应用于DNN工作负载;有32个1024位向量寄存器和对应执行管道,线程需请求访问,减少寄存器文件需求和功耗 ➢张量指令集(Tensor):用于矩阵乘法和卷积层计算,为优化机器学习矩阵乘法,加入张量协处理器,每秒可完成16K乘累加(MAC)操作,通过优化数据局部性提升计算效率,如输出固定、卷积激活重用等,软件负责组织数据。 ➢紧密耦合内存(TCM):位于多线程区域和张量计算区域之间,用于数据快速交互,带宽高、可避免DDR延迟。➢DMA/BUS和L2缓存:位于左侧,用于数据的传输和存储。 图表:Hexagon NPU经典架构 1.2、NPU是专用加速芯片,适用于乘法累加运算 ◼CNN是一种专门用于处理具有网格状结构数据的深度学习算法,广泛应用于图像分类、目标检测和语义分割等,包含卷积层、池化层和全连接层。以图像处理为例,卷积神经网络需要将大数据量的图片降维成小数据量。神经网络卷积层通过卷积核扫描图片,提取图片局部特征。再通过池化层对数据进行降维和防止过拟合,最后在全连接层输出。如图所示,卷积的本质就是简单乘积和运算,小矩阵(卷积核)上的元素和输入矩阵对应数据相乘并求和,输出矩阵单个值,这个过程在输入的矩阵上移动进行,从而生成整个更低维的输出矩阵。相应处理这种运算的单元被称为乘积累加器,MAC运算的操作就是计算两个数的乘积并将该乘积添加到累加器中,即a ← a + ( b×c )。 1.2、NPU是专用加速芯片,适用于乘法累加运算 ◼NPU指令集(ISA)契合神经网络任务。NPU指令集经过了专门的优化,包含ADD加法、MULT矩阵乘法、DOT矩阵点乘、CONV卷积操作等指令,适合神经网络任务,指令的执行效率和吞吐量更高。 ◼卷积神经网络本质是MAC计算。卷积神经网络需要将大数据量的图片降维成小数据量。神经网络卷积层通过卷积核扫描图片,提取图片局部特征。再通过池化层对数据进行降维和防止过拟合,最后在全连接层输出。如下图所示,卷积的本质就是简单乘积和运算,小矩阵(卷积核)上的元素和输入矩阵对应数据相乘并求和,输出矩阵单个值,这个过程在输入的矩阵上移动进行,从而生成整个更低维的输出矩阵。相应处理这种运算的单元被称为乘积累加器,MAC运算的操作就是计算两个数的乘积并将该乘积添加到累加器中。 1.2、NPU是专用加速芯片,适用于乘法累加运算 ◼MAC(Multiply-Accumulate)是NPU中的基本单元,主要反应NPU的算力水平,占芯片主要面积。MAC是相乘和相加的两个过程(即a ← a + ( b×c )),在硬件电路单元中称为“乘数累加器”,因此可以通过一个MAC指令完成乘加两个指令操作,适用于卷积运算、点积运算、矩阵运算等,广泛使用于神经网络加速以及其他需要高效数学计算的领域,本质上MAC的运算能力即反应NPU的算力水平。 ◼一个典型的MAC阵列由多个MAC单元组成,每个MAC单元会独立进行乘法累加运算,通过并行及流水线技术提升整体性能。假设一个4*4的MAC阵列,则表示4行4列共计16个MAC单元,如昇腾310包含64*64阵列即4096 MACs矩阵,特斯拉FSD为96*96阵列即9216 MACs。NPU使用MAC阵列做神经网络加速时,如卷积运算、矩阵运算、点积运算等均可分解成数个MAC指令从而提升效率。 1.2、NPU是专用加速芯片,适用于乘法累加运算 ➢FLOPS(Floating Point Operations Per Second)即每秒浮点运算次数,代表浮点运算速度。浮点计数是利用浮动小数点的方式,使用不同长度的二进制来表示一个数字,一般采用4个字节即32位二进制来表达一个数字,因此FP32/FP64/FP16分别代表单精度、双精度、半精度。FP64常用于对精度要求高的科学计算或超算,AI深度学习主要用FP32或FP16。 ➢算力(Tops)是衡量NPU性能的常见指标,理论峰值=MAC矩阵行*MAC矩阵列*主频*2。MAC直接反映NPU算力水平:假设NPU内置一个N*Y的MAC矩阵,则算力理论峰值=MAC矩阵行*MAC矩阵列*主频*2,其中2为两次运算,即一次乘法加一次加法,主频决定NPU及其MAC单元运算的时钟速度。以特斯拉FSD为例,每个NPU拥有96x96 MAC,主频为2GHz,则单个NPU的TOPs为96 * 96 * 2 * 2G = 36.86TOPS。 1.3、NPU显著提升AI模型运