边缘AI对可扩展加速器的需求

探索科技TechSugar

    来源︱The Linley Group
    文︱Mike Demler
    人工智能(AI)正在迅速从数据中心转移到边缘计算。开发人员通常使用通用CPU和GPU内核来开发和训练神经网络模型,但这些内核的效率远低于用于推理任务的专用加速器。尽管快速增长的市场导致众多企业家推出边缘AI初创公司,但很少有人能够开发出包括生产系统所需硬件和软件的完整解决方案。算法开发人员已经发布了许多在线免费提供的神经网络模型,亚马逊、谷歌和微软等科技巨头提供了在云端运行这些模型的平台,但边缘AI部署需要对每个细分市场进行更细粒度的优化。
    边缘AI市场包括许多不同的应用,从嵌入式设备到企业、工业、零售和智能城市管理系统的本地服务器。这些应用涵盖了广泛的性能范围,从嵌入式中每秒不到一万亿次操作(TOPS)开始,到在边缘服务器中达到数十万亿次或数百万亿次(TOPS)操作。为避免为每个细分市场使用不同的平台,设计人员应选择可扩展的加速器和软件堆栈,以满足其所针对的不同的细分市场需求。
    边缘服务器的趋势是通过在PCIe插卡上添加专用加速器来从CPU上卸载AI。基于FPGA的加速器具有可配置性支持各种应用的优势,而且比定制芯片的上市时间更短。同时还允许用户修改架构以在现场安装新模型以及优化加速器以处理不同的工作负载。另一方面,ASIC更适合具有固定要求的嵌入式系统和大批量的消费电子产品。
    许多IP供应商为ASIC或FPGA提供了可授权AI加速器,但很少有供应商能够提供两者均适用的AI加速器。AI初创公司EdgeCortix是一个例外。该公司开发了一个名为动态神经加速器(DNA)的高度可配置硬件平台,为FPGA提供1.2到15 TOPS的算力,为ASIC提供高达54 TOPS的算力。对于需要更高吞吐量的系统,设计人员可以安装多个PCIe卡或将多个ASIC内核连接到SoC的AXI总线。
    但除了这种高度可扩展的架构外,同时为ASIC和FPGA设计提供服务的关键是该公司的多模块高效可重配置加速器(Mera)软件。通过Mera和DNA内核的结合,针对可编程逻辑和定制芯片,设计人员可以使用相同的工具。同时还可以从Mera基于云的平台支持中受益;Xilinx应用商店就是一个例子,其进一步加快了部署速度,并支持对网联设备进行无线(OTA)更新。这家初创公司已经在Alveo和Zynq UltraScale+FPGA上证明了自己的技术,报告了MLPerf测试套件的结果,并且该公司正在开发一种测试芯片来展示DNA在ASIC中的性能。
    边缘AI对可扩展加速器的需求
    EdgeCortix DNA-F系列非常适合边缘服务器,而DNA-A系列可满足更广泛的ASIC功率预算和性能要求。然而,两种产品的底层架构特性是相同的,为客户提供了高度可配置和可扩展的推理引擎。
    如图1所示,DNA架构通过将多个内核连接至可配置互连总线进行扩展。在每个内核中,卷积引擎使用INT8数据执行大多数操作。矢量引擎处理激活函数,以及池化、采样和其他非卷积层。DNA设计中引擎的组成和数量是可配置的。
    
    图1:EdgeCortix DNA架构。每个DNA内核包括两个卷积引擎:一个用于逐点操作,另一个用于深度运算。向量单元处理最常见的激活函数,以及池化、采样和其他非卷积层。该架构允许配置各种引擎的数量和类型,以及连接多个内核以扩展性能。
    内部SRAM的大小和数量也是可配置的。DNA将数据和网络参数存储在三个不同的内存块中,但这些块共享相同的物理资源。AccMem是一个累加器,用于保存激活函数和卷积操作之间的中间结果。顾名思义,DataMem存储激活函数,WeightMem存储神经网络权重和偏差值。
    EdgeCortix提供了五种针对Xilinx Alveo和Zynq UltraScale+FPGA进行优化的DNA-F模型。DNA-A内核更具可定制性,支持每层或每个推理的运行时配置能力,允许重新分配物理存储以调整三个内存块的容量。计算引擎和内存之间的互连也是运行时可配置的,因此DNA内核可以为通道、内核、模型和磁贴并行性动态分配资源。
    Mera编译器自动为每一层或模型确定计算块和存储器的最佳排列,DNA核心通过电路交换技术动态配置这些排列。这种运行时可配置性是Mera软件和DNA架构的独特功能,可确保所有神经网络模型都受益于最大的硬件利用率和最小的推理延迟。
    无缝流程将训练与推理联系起来
    神经网络开发人员通常在机器学习框架中训练模型,例如Pytorch和TensorFlow等,在CPU和GPU上运行全精度浮点(FP32)计算。所有DLA-IP供应商都提供软件开发工具包(SDK),用于编译在其推理引擎上运行的预训练模型,但为了保持准确性,许多供应商需要额外的优化或重新训练,从而延迟部署。
    相比之下,Mera软件堆栈直接编译和运行在Pytorch或TensorFlow Lite中构建的模型,无需额外的训练后优化。EdgeCortix通过扩展Apache软件基金会的TVM深度学习编译器(一种流行的开源软件堆栈)创建了Mera。受益于主要人工智能技术公司的贡献,包括亚马逊、Facebook、谷歌和微软,开发人员使用TVM进行开发工作。
    图2显示了Mera软件流程及其与机器学习框架集成的高级视图。开发人员使用C++或Python脚本运行Mera。Pytorch和TensorFlow Lite中内置的函数可以将网络参数量化为INT8格式以进行推理。开源ONNX交换格式允许将在其他框架中训练的神经网络模型转换到TensorFlow Lite中。
    量化后,TVM前端处理初始的高级图分区,独立于目标推理引擎。使用EdgeCortix开发的Mera扩展,编译器将支持的运算符从开源中继中间表示(IR)转换为DNA指令。它还检测不受支持的运算符,并将其转换为LLVM IR,以便在目标硬件的基于Arm或x86主机的CPU上执行。
    一旦图像分区完成,Mera的代码生成器让开发人员可以使用Mera解释器执行快速功能模拟。功能模拟器提供检查以确保编译模型与原始预训练版本匹配,而不会损失准确性。功能验证后,Mera会针对特定目标执行低级优化和分区。优化包括融合层和运算符以最大化吞吐量以及有效地平铺操作以匹配特征图维度。开发人员可以选择内置的性能模拟器作为目标,可以准确估计网络延迟。他们还可以使用Mera在Verilator或其他开源周期精确模拟器中生成的RTL代码。
    
    图2.Mera编译器流程。Mera支持在Pytorch或TensorFlow Lite中训练的模型。这些平台中的量化工具将权重转换为用于推理的INT8格式。Mera针对目标硬件优化模型,包括一个验证准确性的功能模拟器和一个估计延迟的动态模拟器,可以与Ventilator以及其他开源周期精确模拟器一起使用。
    Mera的调度程序是DNA效率的关键。通过利用网络并行性,该软件根据硬件配置分配工作负载来最大限度地提高利用率。在batch=1时,该软件能够最大限度地减少延迟,这在实时对象识别中很典型。根据目标,开发人员可以选择快速或慢速调度程序。前者缺乏后者的低级优化,但提供了网络编译正确的更快证明;对于某些客户,这足以进行部署。
    由于Xilinx Alveo系列等FPGA配备了各种数量的DRAM,而且因为有些DRAM内置高带宽存储器(HBM),所以慢速调度器可以通过执行比快速调度器更细粒度的优化来利用这些细节。与仅针对加速器内核中内置的资源进行优化的编译器相比,此功能具有更大的灵活性。
    云平台缩短上市时间
    对于ASIC产品来说,EdgeCortix使用传统的IP许可模式,其中包括预付费用以及基于销售芯片数量的版税。然而,对于基于FPGA的客户,它提供了基于云的SaaS模型,可加速部署。不过,无论目标硬件如何,Mera软件堆栈都是相同的。
    
    表1.EdgeCortix DNA-F系列。DNA-F050面向Zynq UltraScale+FPGA,其中包括可用作主机处理器的Arm Cortex-A CPU。设计人员可以编译F100、F200和F400以在Alveo U50 FPGA上运行;F600面向Alveo 250。Alveo卡具有PCIe接口,用于连接到x86或Arm主机。
    客户可以从针对Xilinx PCIe卡优化的五种DNA-F产品中进行选择,如表1所示。F050与集成Arm CPU的Zynq UltraScale+SoC配合使用。设计人员既可以使用Zynq的可编程逻辑将视频直接流式传输到DNA内核,也可以使用芯片的Cortex-A53 CPU作为主机处理器。F100、F200和F400针对Xilinx U50 PCIe卡进行了优化,可提供2.2至7.5 INT8 TOPS的AI吞吐量。F600针对Alveo U250进行了优化;运行在300MHz,达到15 TOPS。
    使用FPGA设计一个系统历来需要RTL编程技能,但EdgeCortix通过将DNA-F位流和相应的Mera软件打包在即用型Docker容器中,使这项任务变得更加容易,如图3所示。SaaS模式为客户提供锁定到每个设备的可更新订阅。F100和F200可通过Xilinx应用商店进行云或本地部署,也可用于Nimbix平台上的云部署。到2021年底,EdgeCortix计划在其他云平台上提供DNA-F产品,例如AWS和Microsoft Azure
    
    图3.DNA计算机视觉系统。在此示例配置中,主机处理器以高清分辨率将图像流式传输到Alveo PCIe卡。设计人员可以通过下载Docker容器,轻松地在FPGA中安装DNA加速器,该容器包含特定硬件位流以及在主机处理器上运行的Mera编译器。
    标准基准验证性能
    边缘AI加速器供应商通常仅将推理吞吐量指定为乘积累加运算(MAC)操作或TOPS的总数,因为这些操作可以代表90%或更多计算机视觉网络计算。但大多数加速器中的硬件利用率通常低于50%,并且因型号而异,产生的吞吐量比数据表显示的要少得多。因此,我们建议客户评估此类设备以测试他们自己的模型,或者至少要求供应商使用标准的公开可用基准提供结果。
    EdgeCortix通过在各种流行的神经网络(包括来自行业标准MLPerf测试套件的样本)上对DNA-F200设计进行基准测试,展示了其边缘人工智能平台的功能。由于DNA内核针对执行实时对象识别的计算机视觉系统,因此它采用了此类应用中典型的batch=1进行处理。该公司还优化了模型来最大限度地减少延迟,这是汽车和工业系统中的一个关键因素。
    如图4所示,已发布的EdgeCortix基准测试结果包括各种MobileNet和ResNet配置,以及更复杂的Yolo v3模型。MobileNet v2和ResNet-50是MLPerf Inference v1.0的两个组件,要求供应商展示在ImageNet验证数据库中50,000张图像的准确率为99%。在300MHz和batch=1下运行ResNet-50,DNA-F200满足该标准,仅以6.6ms的延迟提供152fps的吞吐量。
    
    图4.DNA-F200 batch=1基准。EdgeCortix已在计算机视觉网络上测试了其DNA加速器,从仅包含3亿次MAC操作的MobileNet v2到执行100倍操作数的其他网络。它发布了符合MLPerf要求的MobileNet v2和ResNet-50的结果,证明了从ImageNet数据库中提取的样本的对象分类准确率至少为99%。(来源:EdgeCortix)
    MobileNet只需要ResNet-50大约10%的参数,使加速器能够将性能提升至390fps,延迟仅为2.6ms。客户应该记住,这些MLPerf结果来自Mera的早期v0.2版本;生产版本可能会表现得更好。在提交MLPerf之后,该公司使用其编译器的更高版本再次运行了ResNet-50。如图4所示,延迟提高到4.4ms,吞吐量增加了近50%,从152fps增加到225fps。
    Yolo v3不是MLPerf的一部分,但它是一个比ResNet-50更具挑战性的网络,在106层中包含330亿次MAC操作,以及6200万个参数。它的原始输入图像分辨率为416x416像素,但EdgeCortix展示了DNA-F200通过缩小全高清(1,920x1,080)视频流来准确分类图像的能力,以40ms的延迟提供25fps吞吐量。将输入分辨率降低到Yolo v3的原生帧大小可将吞吐量提高到43fps,将延迟降低到23ms。
    这些基准测试结果证明了Mera在编译跨越10:1模型大小范围的神经网络方面的多功能性,以及DNA IP有效提高性能的能力。例如,虽然Yolo v3包含的MAC操作数是ResNet-50的8倍以上,但DNA-F200执行更大的网络时延迟仅为7倍,这表明Mera能够最大限度地提高硬件利用率。
    总结
    由于边缘AI设备具有广泛的性能和功率要求,因此加速器的选择将面临挑战。该加速器必须能够支持不同的工作负载,并在主流计算机视觉模型上提供所需吞吐量。但边缘AI软件堆栈可能更加棘手,因为若要在不同目标设备中实现硬件最大利用率,就必须包含一个能够优化各种预训练模型的编译器。
    对于标准训练框架的无缝接口来说,其需求是给定的。软件堆栈还必须包括满足对延迟敏感应用要求的调度程序和运行时引擎。由于算法开发人员不断发布新模型,软件平台应该有一个云组件,用于向已安装的系统提供模型更新。
    EdgeCortix DNA IP和Mera软件堆栈组合满足所有这些要求。DNA-A系列非常适合具有固定要求的ASIC设计,但与FPGA相比,定制芯片推向市场的时间要长得多。通过将Mera与Xilinx Alveo和Zynq PCIe卡一起使用,客户可以立即将神经网络模型部署到边缘服务器。
    从MobileNet到ResNet再到Yolo v3,EdgeCortix在众多标准模型上发布基准测试的初创公司中很少见。许多供应商不愿透露他们的结果,而是发布用户从未意识到的理论TOPS数字。相比之下,DNA-F200测试结果表明,在高达HD分辨率的情况下,其处理视频具有出色的延迟和吞吐量,使该设计成为实时计算机视觉的有力候选者。EdgeCortix的硬件+软件平台是一个完整的边缘AI解决方案,适用于工业、零售和智慧城市基础设施系统。