人工智能加速器

人工智能加速器（AI accelerator），又称NPU（neural processing unit，神经处理器），是一类专用于人工智能（特别是人工神经网络、机器视觉、机器学习等）硬件加速的微处理器或计算系统。典型的应用包括机器人学、物联网等数据密集型应用或传感器驱动的任务。 
人工智能加速器被用于移动设备，例如苹果iPhone和华为手机，以及个人电脑，例如英特尔笔记本电脑， AMD笔记本电脑和苹果芯片 Mac。加速器用于云计算服务器，包括谷歌云平台中的张量处理单元 (TPU)和亚马逊云计算服务中的Trainium和Inferentia芯片。此类别中存在许多厂商特有的术语，并且它是一种新兴技术，没有主导设计。
图形处理单元由英伟达和AMD等公司设计，通常包括特定于AI的硬件，并常用作AI加速器，用于训练和推理。

**历史**
计算机系统经常用特殊用途的加速器（称为协处理器）来补充CPU以执行专门的任务。值得注意的专用 硬件单元包括用于图形的显卡、声卡、图形处理单元和数字信号处理器。随着深度学习和人工智能工作负载在2010年代日益突出，专门的硬件单元从现有产品中开发或改编而来，以加速这些任务。

**早期尝试**
早期的尝试，例如英特尔的ETANN 80170NX，采用了模拟电路来计算神经函数。
后来的全数字芯片，如Nestor/Intel Ni1000，紧随其后。早在1993年，数字信号处理器就被用作神经网络加速器，以加速光学字符识别软件。
到1988年，张伟等人已经讨论了用于字母识别的卷积神经网络的快速光学实现。
在20世纪90年代，也有人尝试为工作站创建并行高吞吐量系统，以用于包括神经网络模拟在内的各种应用。
基于FPGA的加速器也在20世纪90年代首次被探索用于推理和训练。
2014年，陈天石等人提出了DianNao（即来自汉字的“电脑”）， 特别是用于加速深度神经网络。DianNao在一个3.02 mm2 的面积和485 mW 的功耗下，提供452 Gop/s 的峰值性能（深度神经网络中的关键操作）。后来，它的继任者（DaDianNao， ShiDianNao， PuDianNao) 由同一组人提出，形成了DianNao家族。
智能手机 从2015年的高通骁龙820开始整合AI加速器。

**异构计算**
异构计算在一个系统或单个芯片中结合了许多专用处理器，每个处理器都针对特定类型的任务进行了优化。诸如Cell微处理器等架构具有与AI加速器显着重叠的特性，包括：支持打包低精度算术、数据流架构以及优先考虑吞吐量而不是延迟。Cell微处理器已应用于许多任务，包括AI。
在21世纪初，CPU也获得了越来越广泛的SIMD单元，这得益于视频和游戏工作负载；以及对打包低精度数据类型的支持。由于CPU性能的提高，它们也被用于运行AI工作负载。CPU对于具有小型或中型并行性的DNN、稀疏DNN和低批量大小的场景具有优势。

**GPU 的使用**
图形处理单元或GPU是专门用于操纵图像和计算局部图像属性的硬件。神经网络和图像处理的数学基础是相似的，过易并行的任务涉及矩阵，导致GPU越来越多地用于机器学习任务。
2012年，Alex Krizhevsky采用两个GPU来训练深度学习网络，即AlexNet， 它赢得了ISLVRC-2012竞赛的冠军。在2010年代，英伟达等GPU制造商在硬件（例如，INT8运算符）和软件（例如，cuDNN库）方面都增加了与深度学习相关的功能。
在2010年代，GPU继续朝着促进深度学习的方向发展，包括在自动驾驶汽车等设备中进行训练和推理。英伟达等GPU开发商的NVLink正在开发额外的连接能力，以满足AI受益的数据流工作负载。随着GPU越来越多地应用于AI加速，GPU制造商已经整合了神经网络-专用硬件，以进一步加速这些任务。 张量核心旨在加快神经网络的训练。
GPU继续用于大规模AI应用。例如，Summit，来自IBM的橡树岭国家实验室的超级计算机， 包含27,648个NVIDIA Tesla V100卡，可用于加速深度学习算法。

**FPGA 的使用**
深度学习框架仍在不断发展，这使得设计定制硬件变得困难。可重构设备（例如现场可编程门阵列 (FPGA)）使硬件、框架和软件更容易相互协同发展。
微软已使用FPGA芯片来加速实时深度学习服务的推理。

**NPU 的使用**
神经处理单元 (NPU) 是另一种更原生化的方法。自2017年以来，一些CPU和SoC具有片上NPU：例如，英特尔Meteor Lake、Apple A11 Bionic。

**专用AI加速器ASIC的出现**
虽然GPU和FPGA在AI相关任务上的性能远优于CPU，但通过专用集成电路 (ASIC) 进行更具体的设计，可以提高效率高达10倍。这些加速器采用诸如优化的内存使用date=2017年11月和使用较低精度运算来加速计算并提高计算吞吐量的策略。一些用于AI加速的低精度浮点数是半精度和bfloat16浮点数。 Cerebras Systems已经构建了一个基于业界最大处理器（第二代晶圆级引擎（WSE-2））的专用AI加速器，以支持深度学习工作负载。亚马逊云计算服务 NeuronCores是异构计算单元，它驱动Tranium、Tranium2、Inferentia和Inferentia2芯片，这些芯片由4个主要引擎组成：张量、向量、标量和GPSIMD，以及片上软件管理的SRAM内存，用于管理数据局部性和数据预取。

** 正在进行的研究**

**内存计算架构**
2017年6月，IBM的研究人员宣布了一种与冯诺伊曼结构相反的架构，该架构基于存内计算和相变化存储器阵列应用于时间相关性检测，旨在将该方法推广到异构计算和大规模并行系统。 2018年10月，IBM的研究人员宣布了一种基于内存处理和模拟人脑突触网络的架构，以加速深度神经网络。该系统基于相变存储器阵列。

**使用模拟电阻存储器的内存计算**
2019年，米兰理工大学的研究人员找到了一种方法，可以通过单一操作在几十纳秒内求解线性方程组。他们的算法基于使用模拟电阻存储器的存内计算，通过使用欧姆定律和基尔霍夫定律一步执行矩阵乘法，从而实现高时间和能量效率。研究人员表明，具有交叉点电阻存储器的反馈电路可以一步解决代数问题，例如线性方程组、矩阵特征向量和微分方程。与数字算法相比，这种方法极大地提高了计算时间。

**原子级薄半导体**
2020年，Marega等人发表了关于用于开发基于浮栅场效应晶体管 (FGFET) 的逻辑内存设备和电路的大面积有源通道材料的实验。这种原子级薄半导体被认为有望用于节能机器学习应用，其中相同的基本器件结构用于逻辑运算和数据存储。作者使用二维材料（例如半导体二硫化钼）来精确调整FGFET作为构建块，其中可以使用存储元件执行逻辑运算。

**集成光子张量核心**
1988年，张伟等人讨论了用于字母识别的卷积神经网络的快速光学实现。
2021年，J. Feldmann等人提出了一种用于并行卷积处理的集成光子 硬件加速器。作者指出了集成光子学相对于其电子对应物的两个主要优势：（1）通过波长分多路复用结合频率梳进行大规模并行数据传输，以及（2）极高的数据调制速度。他们的系统每秒可以执行数万亿次乘积累加运算，这表明集成 光子学在数据密集型AI应用中的潜力。还可以进行人工神经网络反向传播的光学处理器已经过实验开发。

**命名法**
截至2016年，该领域仍在不断变化，供应商正在推广他们自己对“AI加速器”的营销术语，希望他们的设计和API能够成为主导设计。对于这些设备之间的界限以及它们将采用的确切形式，还没有达成共识；然而，几个例子清楚地表明了旨在填补这一新空间的目标，并且功能上存在相当大的重叠。
过去，当消费者图形处理器出现时，业界最终采用了英伟达的自称术语“GPU”，作为“图形加速器”的集体名词，在最终Clarify|text=确定一个由Direct3D提出的模型实现的整体管道|date=2024年7月之前，它已经采用了多种形式。
所有型号的英特尔Meteor Lake处理器都内置了“多功能处理器单元”（“VPU”），用于加速推断，以用于计算机视觉和深度学习。

**深度学习处理器 (DLP)**
受DianNao家族开创性工作的启发，学术界和业界提出了许多DLP，其设计经过优化，可以利用深度神经网络的特性来提高效率。在ISCA 2016上，接受论文的三个单元（15%）侧重于深度学习的架构设计。这些努力包括学术界的Eyeriss（麻省理工学院）， EIE（斯坦福大学）， Minerva（哈佛大学）， Stripes（多伦多大学），以及工业界的TPU（谷歌）和MLU（寒武纪科技）。表1列出了几项代表性工作。

**数字DLP**
DLP架构的主要组件通常包括计算组件、片上内存层次结构以及管理数据通信和计算流的控制逻辑。
关于计算组件，由于深度学习中的大多数操作可以聚合到向量操作中，因此在数字DLP中构建计算组件的最常用方法是基于MAC（乘法-累加）的组织方式，可以使用向量MAC或标量MAC。与通用处理设备中的SIMD或SIMT不同，深度学习领域特定的并行性在这些基于MAC的组织中得到了更好的探索。关于内存层次结构，由于深度学习算法需要高带宽才能为计算组件提供足够的数据，因此DLP通常在片上缓冲区中使用相对较大的大小（几十KB或几MB），但采用专用的片上数据重用策略和数据交换策略来减轻内存带宽的负担。例如，DianNao，16个16输入的向量MAC，需要16 × 16 × 2 = 512个16位数据，即计算组件和缓冲区之间几乎需要1024 GB/s的带宽。通过片上重用，这种带宽要求大大降低。与通用处理设备中广泛使用的缓存不同，DLP总是使用高速缓存内存，因为它可以通过利用深度学习算法中相对规则的数据访问模式来提供更高的数据重用机会。关于控制逻辑，由于深度学习算法正在以惊人的速度不断发展，因此DLP开始利用专用ISA（指令集架构）来灵活地支持深度学习领域。首先，DianNao使用了一种VLIW样式的指令集，其中每条指令都可以在DNN中完成一层。寒武纪引入了第一个深度学习领域专用ISA，它可以支持十多种不同的深度学习算法。TPU还从CISC样式的ISA中揭示了五个关键指令。

**混合DLP**
由于混合DLP的效率高，因此它们出现在DNN推理和训练加速中。内存计算(PIM)架构是最重要的混合DLP类型之一。PIM的关键设计理念是弥合计算和内存之间的差距，方法如下：1) 将计算组件移动到内存单元、控制器或内存芯片中，以缓解内存墙问题。这种架构显着缩短了数据路径并利用了更高的内部带宽，因此带来了引人注目的性能提升。2) 通过采用计算设备来构建高效的DNN引擎。2013年，惠普实验室展示了采用ReRAM交叉点结构进行计算的惊人能力。受这项工作的启发，人们提出了大量工作来探索基于ReRAM、相变存储器等的新的架构和系统设计。

**基准测试**
可以使用MLPerf等基准测试来评估AI加速器的性能。表2列出了AI加速器的几个典型基准测试。

**潜在应用**
农业机器人，例如，无除草剂杂草控制。
*无人驾驶汽车：英伟达将其Drive PX系列板瞄准了此应用。
*计算机辅助诊断
*工业机器人，通过增加对可变情况的适应性，增加了可以自动化的任务范围。
*机器翻译
*军用机器人
*自然语言处理
*搜索引擎，提高数据中心的能效和使用越来越先进的查询的能力。
*无人机，例如导航系统，例如Movidius Myriad 2已成功地引导自主无人机。
*语音用户界面，例如在手机中，这是高通Zeroth的目标。

**另请参阅**
认知电脑
*神经形态工程
*光学神经网络
*物理神经网络
*UALink

**参考文献**

**外部链接**
 Nvidia Puts The Accelerator To The Metal With Pascal.htm，The Next Platform- Eyeriss Project date=20230811160303 ，麻省理工学院
*https://alphaics.ai/ date=20230921081215