AI是什么?深度解析光电融合智能加速体系
一、人工智能概述
近年来,人工智能(Artificial Intelligence,AI)技术再度崛起并迈入全新发展阶段,以神经网络(Neural Network,NN)为代表的AI模型正深刻重塑当今计算机视觉、自然语言处理等众多领域。
AI领域两大核心研究方向为AI模型与AI加速体系。
在AI模型研究层面,神经网络是应用最为广泛的AI模型类别之一。
神经网络借助模拟生物神经元的计算架构、学习机制与连接模式,使构建的模型具备一定程度的智能特征。
Alex Net、Google Net、Res Net、VGG等多种神经网络架构已在计算机视觉等领域获得广泛应用。
AI加速体系是用于加速AI模型运行的计算平台。鉴于AI模型运行通常具有高并行度、计算密集以及存储访问密集的特点,为实现AI应用的高效运行,加速体系的设计需契合应用特性需求。
以神经网络为例,首先,神经网络推理或训练过程存在模型分割及数据分割等多种分割模式,由此催生输入数据或中间值的并行处理需求;
其次,神经网络模型包含大量卷积运算或矩阵乘法运算,因而需要高性能计算单元支撑;
第三,神经网络模型的计算过程中还需海量数据存储与搬移操作。
因此,加速体系中除配备多个可高效运行的计算节点外,还应具备大容量、高性能的存储体系,且需设计高效的互连架构,实现多计算节点间高效协同、解决计算节点与存储体系间的"存储墙"难题。
板卡级加速体系是当前加速体系研究中的重要分支,相关研究正推动AI加速体系设计的快速演进。
近年来英特尔、英伟达、谷歌及AMD等相继推出面向人工智能应用的基于中央处理器(CPU)、图形处理器(Graph Processing Unit, GPU)、专用集成电路(Application Specific Integrated Circuit, ASIC)和可编程逻辑阵列(Field Programmable Gate Array, FPGA)的AI加速体系。
若干新型存储、互连与计算技术及器件均在板卡级加速体系中率先落地:
首先,基于DRAM的高性能存储模块正大幅提升体系存储访问带宽;
其次,基于脉动阵列、累加树结构或特定存储阵列的高效矩阵乘法运算单元使加速芯片中可实现高性能计算;
第三,部分新型互连技术与集成技术的进步使体系内计算、存储资源间能够实现高效灵活互连,由此进一步拓展加速体系计算、存储规模,实现高并行、高性能及可重构的板卡级加速体系。
在板卡级开展应用特性研究、加速器中计算单元和存储相关研究,以及新型互连技术研究将有助于在充分发挥加速体系性能的同时,构建可重配置的板卡级加速体系架构,高效应对不同特性任务,并提升加速体系应对故障的能力,增强体系可靠性。
然而,板卡级加速体系目前仍面临可扩展性、可靠性及能耗等方面的挑战。
首先,现有板卡级加速体系中加速器内部及加速器之间的互连架构大多基于电互连。部分如NV Link等定制化互连技术的应用显著提升了加速器内部高带宽存储与计算单元间的数据带宽,同时为加速器之间的数据提供了较强的交换能力。
然而随着AI模型种类、数量及模型规模持续增长,板卡级数据交互将愈发频繁,通信量将不断提升,通过堆叠电互连线条数实现板卡级通信带宽提升的方式面临能耗、芯片面积开销、互连扩展性及可重配置性等方面的挑战。
此外,传统DRAM芯片在神经网络推理任务规模扩大的趋势下难以满足权重、输入输出数据、中间计算值的存储容量与带宽需求。
相较于传统的双倍速率动态随机存取存储器(Double Data Rate Dynamic Random Access Memory,DDRDRAM),新型高带宽存储(High Bandwidth Memory, HBM)、多通道DRAM(Multi-channel DRAM)和混合存储立方(Hybrid Memory Cube, HMC)等可有效提升单位面积存储容量,大幅提高存储带宽,满足神经网络推理过程对存储体系的容量与带宽需求。
目前已有越来越多AI加速体系中引入新型存储模块。然而,在这些加速体系中,新型存储仍主要作为单纯提升存储容量与存储访问带宽的器件,而综合考虑新型存储访问特性、应用特性及互连架构,对存储体系数据分布组织形式及存储-计算可重配互连等方面进行系统性研究则相对匮乏,对于如何在保障存储体系性能的同时,降低存储体系能耗也缺乏充分研究。
在互连架构设计方面,基于硅光技术实现的光互连与光通信具备以下优势:
第一,比特率透明性,单波长可实现与单金属线相当的传输速率,但与金属线相比,在光波导上进行长距离数据传输时,传输速率的提升不会导致波导中传输能耗增加,也不会产生热损耗问题;
第二,基于波长路由及波分复用技术等可以提供的灵活互连形式,能够实现灵活的多对一和一对多等集群通信,为AI加速体系中计算存储资源可重配置提供了良好的技术支撑。
因此,新型的光互连技术成为板卡级支持集群通信及高可配置性互连通信的重要实现技术。
二、人工智能加速体系
人工智能加速体系可被划分为软件框架与硬件架构两个组成部分。
下图呈现了一个人工智能加速体系涉及的主要软硬件部分。
一种主流的加速器架构为冯-诺依曼架构。在冯-诺依曼架构的加速器中,数据计算与存储在不同单元中完成,这意味着数据在计算单元与内存之间的移动不可避免。
谷歌的TPUV1即为冯-诺依曼加速器的代表之一。在TPUV1中,DDR DRAM被用作内存,脉动阵列被用作计算单元。
与其他冯-诺依曼加速器类似,TPU V1存在的一个核心问题为存储墙(memory wall),即内存体系的性能成为加速器整体性能的关键瓶颈。
具体而言,在加速器中,尽管计算单元可提供很高的峰值计算性能,但计算单元中数据供给不足会导致计算单元空闲时间增加及计算效率下降。虽然增加片上缓冲区容量和部署数据重用技术等方法可在一定程度上掩盖内存访问时间成本,但这些方法无法从根本上破解存储墙难题。
提升内存带宽是解决存储墙问题的直接途径之一。
HMB、MCDRAM和HMC通过增加并行内存访问通道及提升数据位宽的方式提高内存带宽。
HBM目前已被部署在英伟达的图形处理器单元及分布式计算体系中,谷歌的TPUV2至V4亦采用了HBM,且存在进一步提升加速器中HBM模块数量及带宽的趋势。
在冯-诺依曼加速器中,计算芯片由片上缓存及多个计算块(Tile)组成。
SRAM、eDRAM、ReRAM或寄存器均为常见构建片上缓存的主要器件。片上缓存与计算块之间通过片上互连架构实现连接。计算块涵盖执行矩阵乘法运算的计算单元,以及其他计算单元(如激活和池化)等。
矩阵乘法运算主要由脉动阵列或累加树结构实现。
片下内存仅用作数据存储,DDRDRAM、MCDRAM和HBM可用作内存。计算芯片通过芯片级或芯粒级(chiplet)互连架构与内存通信。
由于内存模块同时承担数据存储与计算的角色,冯-诺依曼加速器中数据移动相关能耗得以降低。
静态随机存取存储器(Static RandomAccess Memory, SRAM)、电阻式随机存取存储器(ResistiveRandomAccess Memory, ReRAM)、嵌入式DRAM(EmbeddedDRAM)和DRAM等片上、片下存储器模块均被用于构建非冯-诺伊曼加速器。
在非冯-诺依曼加速器中,矩阵乘法运算以数字或模拟方式在片上或片下内存中进行。片上或片下存储模块中还集成了其他逻辑单元,以实现激活和池化等功能。
例如,在DRAM中,数据存储于DRAM存储体中。执行矩阵乘法、激活和池化操作时,数据从DRAM存储体中提取,并在存储器逻辑单元中进行数字处理。在SRAM、eDRAM或ReRAM中,神经网络的输入数据通过注入电路(InjectionCircuits) 和字线(WordLine)注入到比特位单元矩阵中。矩阵乘法在比特位单元内完成,计算 结果通过位线(BitLine)和注出电路(EjectionCircuits)从比特位单元矩阵中输出。 非冯-诺依曼加速器中带有逻辑单元的片下和片上存储器之间也可通过板级或芯片级 互连架构连接。
三、光电混合互连加速体系架构
下图所示为基于光电混合互连架构的加速体系架构,整个加速体系用于加速卷积神经网络中的卷积运算。
在板卡上主要有基于chiplet技术的加速芯片及若干板载激光源。其中板载激光源为加速芯片提供不同波长的光信号。在加速芯片内部主要包括4个内存芯粒,4个计算芯粒、控制芯粒、电互连芯粒及光互连芯粒。
光互连芯粒包括光调制器和光探测器及基于波长路由的光交换架构。
1个光调制器用于将1个内存芯粒或1个计算芯粒中的数据调制为特定波长的光信号,并将调制后的光信号传输至光交换架构中;
1个光探测器与1个内存芯粒或计算芯粒相连,光探测器用于将从光交换架构中解耦的光信号转换为相应的电信号,并将电信号传输至其所连接的芯粒。
光交换架构可实现内存芯粒与计算芯粒之间的可重配互连;而电互连架构则能够实现计算芯粒之间的可重配互连。
控制芯粒用于对其余芯粒的工作状态、互连状态进行统一配置。由于采用了Chiplet技术,4个计算芯粒和4个内存芯粒在同一个芯片内部形成了一个加速体系。此外由于内存芯粒可通过光、电互连两种方式与计算芯粒进行连接,为便于在后文中进行区分,将与某一计算芯粒进行直接电互连的内存芯粒称之为该计算芯粒对应的本地存储(Local memory);
而将与该计算芯粒通过光互连方式进行连接的内存芯粒称之为其远端存储(Remote memory)。
下图进一步展示了利用chiplet技术和硅光集成技术实现所提出的加速体系的集成方案。作为有源光器件的激光源将被集成在PCB板上,通过光纤与芯片硅光层中的耦合器进行连接,实现将波长信号传输至加速体系内部的功能。
电互连芯粒、光互连芯粒、内存芯粒和计算芯粒通过基底板集成封装在同一芯片内部。其中相邻的内存芯粒与电互连芯粒、计算芯粒和电互连芯粒之间可以通过嵌入式多层互连桥(Embedded Multi-die Interconnect Bridge,EMIB)的形式进行高速互连。
计算芯粒与光互连芯粒,以及内存芯粒与光互连芯粒之间可以通过基底板中的铜线进行互连。
此外,内存芯粒或计算芯粒中传输至光互连芯粒中的电信号可以通过硅通孔(Through Silicon Via,TSV)的形式与硅光中介层实现互连,进而与芯粒中的光调制器和光探测器实现连接。
随着集成技术的进步,在未来激光源有望以三维集成的方式集成在加速体系内部。
四、计算芯粒结构
下图展示的是一个典型脉动阵列结构图。
为便于说明,此处所采用的脉动阵列规模为3×3,脉动阵列中的数据流为权重固定数据流。
该脉动阵列由一系列处理单元(Processing PE)通过mesh网络进行互连而构建。一个处理单元主要包括用于存储权重和输入数据的缓存、一个乘法器及一个加法器。在相邻处理单元之间的连接线上还设有数据锁存结构。
如图所示一个3×3的权重矩阵(w11至w33)将首先通过脉动阵列左侧的输入端口输入并最终存储于每一个处理单元内部;随后卷积神经网络的3×3输入数据矩阵(a11至a33)将同样从脉动阵列的左侧输入。
下图展示了由脉动阵列等结构构建的单个计算芯粒。
计算芯粒主要包括一系列数据选择器,数据位宽转换器,输入、输出缓存及一个8×8的脉动阵列。
数据选择器的主要作用是根据当前加速体系的工作状态对计算芯粒输入输出数据通信路径进行配置。
从脉动阵列左侧进入计算芯粒的数据有3个