从根本上构建高效的深度学习加速器

作者:Synopsys产品营销经理Ken Brock

深度学习加速器的大部分芯片区域均专用于AI特定的计算功能和大型存储器。在为数据中心和在边缘的人工智能(AI)推理引擎构建ASIC和ASSP时,设计人员在集成深度学习技术方面将面临性能、功耗和面积等挑战。通过利用实用的解决方案来设计节能SoC,设计人员可在基础IP和片上系统(SoC)级应对这些挑战。通过集成已针对AI和深度学习功能进行了优化处理的片上基础IP – 存储器和逻辑 – 您将能够显著降低功耗和面积需求,同时满足应用的性能需求。

深度学习

深度学习加速器使用TensorFlow或Caffe等训练有素的深度学习框架作为推理的基础。图1在左上方显示了初始神经网络模型。该模型中包含将由训练引擎使用大量训练数据进行评估的若干属性。例如,谷歌和斯坦福大学的早期深度学习研究便是利用网络中大量的猫脸图像开发出了当今许多最常见的算法和深度学习实践方法。一旦神经网络模型接受了大量图像数据的训练,形成了数据/标签对,它们便可以助力推理引擎快速推断出目标并相应地采取行动,在这个案例中显示为一边扫描新图像、一边推断猫脸,如右图所示。

图1:深度学习框架中的神经网络模型

卷积神经网络与深度神经网络

经证实,卷积神经网络(CNN) 作为推理引擎在图像识别和分类等领域非常有效。CNN能够成功地识别出面部、物体和交通标志,并且能为机器人和自动驾驶汽车提供“视力”。从计算的角度看,深度神经网络(DNN)可通过一系列的层和特征生成极为准确高效的结果。如图2所示,卷积、非线性、归一化,池化和分类(完全连接层)等层均可使用软件或者由逻辑算术函数组成的专用硬件进行实施,其中间结果通常存储在本地存储器中。

图2:现代深度卷积神经网络

大型训练集超越存储器性能

由于易于实施并且在有限数据集下具有足够的性能,因此,大多数的早期训练和推理活动都是由运行高级语言程序的通用CPU完成的。后经证实,随着训练数据集变得越来越大,GPU在并行执行神经网络中的多项任务方面更有效,可实现更高的吞吐量。随着“大数据”的出现,专用深度学习处理器的表现让人们相信它们最有希望以最快的速度执行这些大型计算任务。该等处理器经常能够高效地实现每秒万亿次级(万亿次(1012))浮点运算。当今最先进的FinFET工艺为构建针对特定应用而优化的深度学习加速器和推理引擎提供了卓越的平台。

基于Von Neuman架构的当今处理器存在局限性,导致片外存储器的性能远远无法满足遵循摩尔定律的处理器的速度需求,并且这种差距越拉越大(图3)。大量的稀疏数据和不断提升的硅性能进一步加剧了这种存储器访问瓶颈。

图3:CPU/GPU的性能一直超越存储性能,而深度学习处理器则表现出更大的性能差距

用于深度学习的硬件平台需要高效存储器

许多最新的硬件平台,包括通用CPU和GPU、以及专用的CNN处理器和自定义DNN服务器,都提供针对CNN的特殊处理功能。CNN推断能力也已在嵌入式SoC上得到了证明。在用于软件开发的MetaWare EV开发工具包的支持下,Synopsys的嵌入式视觉(EV)处理器每秒可以开展大量的乘法累加器(MAC)计算,并具有功耗低和面积小等优势。

深度学习加速器的设计原则是采用能够优化数值精度的处理器架构,以便最大限度地降低存储器瓶颈,同时保持足够的精度、确保片上存储器得到高效利用,并对定点和浮点计算采用节能逻辑。图4显示了包含片外和片上存储器层的专用深度学习加速器的典型架构。

图4:专用深度学习加速器的存储器架构示例

存储器层连接到算术逻辑单元(ALU)阵列,每个算术逻辑单元中都包含小型的暂存存储器和控制电路。ALU阵列运行专用的DNN函数和层,以便高效处理训练和推理函数中的大量数据。存储器和处理器可在此阵列中灵活的连接,因此能够使用相同的硬件执行少量的专用任务或各种学习任务。

 

降低数值精度

降低存储器中标量数据的数值精度是最大限度地降低深度学习能耗的关键,因为对标量数据应用权重的大多数深度学习算法对于细微的舍入误差都具有极高的宽容度。例如,与32位定点加法器相比,8位定点加法器的能耗可减少3.3倍、面积减少3.8倍;与32位浮点加法器相比,8位定点加法器的能耗可减少30倍、面积减少116倍。降低精度还可以减少存储此类典型稀疏矩阵数据所需的存储区域和能量,并控制可能很快成为系统性能瓶颈的存储带宽问题。这些整数和浮点MAC可使用Booth和Wallace树等种类繁多的乘法器,以及进位超前、进位保留和进位选择等多类加法器。Synopsys DesignWare® Library中包含适用于各种加法器、乘法器和点积发生器的RTL,具有完全符合IEEE-752标准的单精度和双精度。

用于当今深度学习的存储器

深度学习需要大量的片上或片外存储器来有效运行特别强调最小总功率的稀疏矩阵乘法。片上SRAM和寄存器文件存储器的能量需求远远低于从片外存储器访问DRAM。当今片上存储器的轻度睡眠、深度睡眠、关机、读/写辅助低电压运行和双轨等功能,均可利用各种位单元和外围选件来优化性能、功耗和面积。深度学习处理器经常使用单端口、双端口和多端口等存储器和寄存器文件配置。图5显示的特殊的多端口两读/一写配置在向ALU馈送滤波器权重和映射信息时特别有用,部分和来自本地寄存器。

图5:用于深度学习的多端口存储器

CAM和存储器内处理

内容可寻址存储器(CAM)目前在网络应用中很常见,但如果它能最大限度地降低功耗,则很有可能给深度学习应用提供巨大帮助。例如,作为特殊类型的高速存储器,三元内容可寻址存储器(TCAM)可在单个时钟周期内搜索其整个内容,从而为深度学习SoC提供更低功耗的解决方案。术语“三元”是指存储器使用三类不同输入来存储和查询数据的能力:0、1和X  “无关紧要”(don't care)逻辑位在搜索期间充当通配符。

近存储器处理和存储器内处理均可利用自旋扭矩传递RAM (STT RAM)、相变存储器(PCM)和电阻RAM (RRAM)等非易失性存储器(NVM)技术。主流半导体制造商多年来一直在分立器件中应用这些新兴技术,可用于使用加权位、电阻梯和电容器的模拟方法执行乘法累加操作。若与CMOS逻辑结合使用,这些技术将能像几年前的量子计算一样,显著提高深度学习的能效。如今,高能效的嵌入式SRAM和寄存器文件已开始提供用于深度学习加速器。

用于深度学习的逻辑

经常使用张量格式数据的大规模并行矩阵乘法电路,需要面积和能源效率都很高的逻辑。张量是描述几何向量、标量和其他张量之间的线性关系的几何对象。此类关系中包含点积、叉积和线性映射等基本元素。这些计算引擎可同时执行整数和浮点运算。关键电路中则包括具有16位浮点MAC的8位整数,并支持当今加速器中整数和浮点格式间的转换。

能耗最小化逻辑库

为了构建更高级别的功能,逻辑库中必须包含各种快速高效的半加和全加法器、XOR、压缩器、Booth编码器、以及用于部分乘积及其他存储的触发器和锁存器系列,包括多位。鉴于功率与CFV2成正比,因此,大型训练应用需要采用低电压算术逻辑运算的能耗最小化策略。当以最小能耗启用大型训练应用时,电路将近阈值运行并且变异性成为主要顾虑,因此需要低电压设计技术和特殊的低电压特性表征。为了最小化时钟树中的能耗,异步逻辑可助力深度学习加速器在能耗优化方面再次实现突破。在深度学习处理器上重复数百万次的MAC的功率效率,其计量单位是每单位能量的计算吞吐量的品质因数,例如GMAC/s/W或Giga乘每千瓦每秒。选择最佳的数值精度和节能算术逻辑单元对于最小化功率至关重要。图6显示了典型浮点MAC中的逻辑。

图6:乘法累加MAC

寻址SoC接口

设计深度学习加速器不仅要有出色的算法、创新的架构、高效的设计和良好的基础IP。深度学习SoC旨在处理可以完全改变每次运算的整体能量指标的大量片上和片下数据。Synopsys提供广泛的高速接口控制器和PHY组合,包括HBM、PCI Express、USB、MIPI和SerDes,以便高速传输数据,同时保持最小的功率和面积。Synopsys还提供全面的EDA平台,用于面向深度学习设计和验证ASIC和ASSP。

结论

鉴于大量的芯片区域专用于AI特定的计算功能和大型存储器,因此,经过优化处理的基础IP对于构建深度学习加速器至关重要。Synopsys提供全面的基础IP,包括针对深度学习加速器的所有先进FinFET工艺中的节能逻辑库和存储器编译器。这些加速器旨在作为最节能的ASIC和ASSP部署在数据中心或者支持移动设备中的AI推理引擎。