文章

FPGA神经网络

FPGA设备上的神经网络推理
数字人脑的人工智能

简介

世界上不断增加的连接正在产生越来越多的数据。机器学习,如果应用得当,可以学会在这些数据中提取模式和互动。FPGA技术可以提供帮助。 

机器学习是人工智能(AI)的一个分支,其中算法和数据被用来创建一个能够执行某种任务的系统。随着更多数据的处理,系统的准确性会慢慢提高,这被称为训练。一旦足够准确,这个系统就可以被认为是经过训练的,然后部署在其他环境中。在这里,同样的学习算法被用来推断一个结果的统计概率。这被称为推理。

神经网络是大多数机器学习任务的基础。这些网络由多个计算层组成,其相互作用是基于训练期间学到的系数。 本白皮书侧重于FPGA器件上的神经网络推理,说明其优势和劣势。

深入研究机器学习

CNN 缩略图

阅读CNN白皮书

看看如何利用BittWare的FPGA加速器产品加速卷积神经网络

阅读《二维FFT白皮书

点击这里
BWNN 缩略图

阅读BWNN白皮书

了解我们如何使用OpenCL将YOLOv3机器学习框架应用到我们的一块FPGA卡中

阅读BWNN白皮书

点击这里

FPGA的能力

神经网络的核心是大量的乘积计算。这些计算模拟了数以千计的神经元的相互作用,产生了某种事物发生的统计可能性。对于图像识别来说,这就是网络正在观察一个特定物体的信心因素。当然,它也可能是错误的。例如,人类经常在无生命的物体中看到人脸!因此,任何系统都需要一定的容忍度!因此,任何系统都需要对不正确的结果有一定的容忍度。这些结果的统计性质为改变计算的动态范围提供了机会,只要最终的答案保持在由应用的容忍度定义的令人满意的准确度水平内。因此,推理提供了对所使用的数据类型进行创新的机会。

数据宽度通常可以减少到8位整数,在某些情况下可以减少到一个比特。FPGA可以被配置为处理几乎任何大小的数据类型,在计算利用率方面几乎没有损失。

在神经网络推理方面,ASIC、CPU、GPU和FPGA各有优缺点。定制芯片(ASIC)提供最高的性能和最低的成本,但只针对目标算法--没有灵活性。 相比之下,CPU提供最大的编程灵活性,但计算量较低。GPU的性能通常比CPU高得多,而且在使用大批量数字时,即并行处理许多查询时,性能会进一步提高。在延时关键的实时系统中,并不总是能够批量输入数据。这是FPGA有些独特的一个领域,它允许神经网络针对单个查询进行优化,同时仍然实现高水平的计算资源利用。当ASIC不存在时,这使得FPGA成为延迟关键神经网络处理的理想选择。

内联处理

图1说明了FPGA的典型加速器卸载配置。在这里,系数数据被更新加载到附加的深度DDR或HBM存储器,并在处理从主机传输的数据时被AI推理引擎访问。GPU的性能通常优于FPGA的高批处理量,然而,如果小批处理量或低延迟是系统的首要限制,那么FPGA就提供了一个有吸引力的选择。

FPGA 推理卸载框图

图1:FPGA推理卸载

FPGA特别擅长的地方是将AI推理与其他实时处理要求相结合。 FPGA的可重新配置的IO可以针对不同的连接问题进行定制,从高速以太网到模拟传感器数据。这使得FPGA在边缘执行复杂的推理方面独树一帜,而ASIC并不存在。设备还可以使用相同的IO,以最适合应用的配置将多个FPGA连接在一起,或者适合现有的服务器连接。连接可以是定制的,也可以遵循标准,如以太网。

显示 FPGA 推理数据管道的框图

图2:在数据管道线内使用推理的例子

对于在线处理,一个神经网络只需要能够以线速度处理数据。在这种情况下,FPGA将只使用必要的资源来跟上所需的吞吐量,而不是更多。这就节省了电力,并为其他任务(如加密)留下了额外的FPGA房地产。

加密

在重视数据隐私的领域,机器学习有很大的机会。例如,医疗诊断可以从云加速中受益。然而,病人的数据是保密的,并在多个站点之间进行分解。站点之间传递的任何数据至少必须是加密的。FPGA可以解密,执行AI处理,并以非常低的延迟进行加密。最重要的是,没有解密的数据会离开FPGA的范围。

 

显示 FPGA 推理解密加密的框图

图3:使用FPGA在云端进行带有解密和加密逻辑的推理。

最终,同态加密将是处理此类敏感数据的理想方法,而FPGA正显示出其前景。

针对不同的神经网络拓扑结构进行优化

有许多不同类型的神经网络。其中最常见的三种是卷积神经网络(CNN)、递归神经网络(RNN)和最近的基于变压器的网络,如谷歌的BERT。 CNNs大多用于图像识别应用,本质上是矩阵处理问题。RNNs和BERT经常被用于语音识别等问题,在GPU等SIMD处理器上的效率不如CNN模型。

FPGA逻辑可以被重新配置以最适合神经网络的处理需求,而不是围绕硬件来适应算法,例如在GPU上。这对低批处理量特别重要,增加批处理量通常是处理对GPU有尴尬依赖的网络的一个解决方案。

平衡计算和内存带宽

Resnet是一个常被引用的神经网络,由许多卷积层组成。然而,这些层中的大多数使用的模板只有一个单元(1×1),这是一个常见的要求。Resnet的最后几层需要非常高的权重与数据计算的比例,因为小模版的大小减少了可能的数据重用量。如果试图实现尽可能低的延迟,即批量大小为1,这种情况就会加剧。平衡计算与存储器带宽对于实现最佳性能至关重要。幸运的是,FPGA支持广泛的外部存储器,包括DDR、HBM、GDDR和内部SRAM存储器,如果选择了正确的器件,就可以为特定的工作负载选择带宽与计算的完美组合。

Resnet 峰值带宽适用于不断扩大的母校规模

图4:Resnet(224×224)的峰值带宽要求(32位浮点数据),用于增加矩阵大小

图4说明了Resnet 50的矩阵尺寸为8×8、16×16、24×24、32×32、48×48和64×64时,峰值带宽需求不断增加。该带宽假设权重、输入和输出数据被读写到外部存储器。片上SRAM存储器用于存储临时积累。如果网络适合在FPGA存储器内,那么就不需要持续地从存储器中读写特征数据。在这种情况下,外部数据带宽变得可以忽略不计。对于int8的实现,所需的带宽数字可以除以4。

FPGA供应商

Bittware与供应商无关,支持Intel、Xilinx和Achronix的FPGA技术。所有的FPGA供应商在低延迟和低批号的实现上都有很好的表现,然而每个设备在可配置逻辑的应用上有细微的差别。

Achronix Speedster 7t

Achronix公司的最新FPGA还具有旨在加速神经网络处理的IP。该器件的每个机器学习处理器(MLP)处理32个乘法累加器(MAC),支持4至24位计算。支持非标准的浮点格式,如Bfloat16。Achronix MPL和英特尔张量组件之间的一个关键区别是紧密耦合的SRAM存储器,目的是确保更高的时钟速度,而不是解耦的SRAM。

ǞǞǞ Bittware S7t-VG6Speedster7t具有2,560 MLPS,总理论峰值性能为61 TOps(int8或bfloat16)。

Achronix MLP 图

图5:Achronix MLP3

S76-VG6 PCIe 卡照片

图6:BittWare S7t-VG6

英特尔Stratix 10 NX和Agilex

英特尔Stratix 10 NX是英特尔推出的第一个具有专用张量运算块的FPGA。张量IP经过优化,可以对10×3的数据块进行张量操作(图5)。该IP可以被配置为与int4、int8、Block FP12和Block FP16数据类型一起工作,并得到充分的利用。

Stratix 10 张量 IP 图

图7:Stratix 10 Tensor IP1

Startix10 NX设备的理论峰值吞吐量显示在表1中。

Stratix 10 NX还拥有HBM2内存,提供高达512GB/s的聚合带宽,确保有足够的带宽来满足所有可用的处理。

精度 业绩
INT4 286个TOPS
INT8 143 TOPS
块FP12 286 TFLOPS
块状FP16 143 TFLOPS

表1:Stratix 10的理论峰值吞吐量

Stratix 10 NX是Bittware 520NX的核心。 Bittware 520NX 加速器卡。该卡具有高达600 Gbps的板对板带宽,可将多个卡连接在一起或与传感器数据进行通信。

英特尔Agilex系列没有张量DSP组件;但是,其DSP在Stratix 10的基础上进行了改进,支持更多的数据类型,提高了低精度算术的吞吐量。英特尔Agilex M系列的理论Resnet-50性能为88 INT TOPS.2

520N-MX PCIe 卡照片
520NX 方框图

图8:BittWare 520NX

AMD Xilinx Versal

赛灵思Versal器件有独立的AI引擎,没有集成到FPGA可编程逻辑中。Versal人工智能引擎与FPGA紧密相连,但与FPGA的其他部分独立运行。数据在AI引擎和FPGA逻辑之间使用片上网络(NOC)传递。

Versal 人工智能引擎图

图9:Versal AI引擎

BittWare目前有一个ACAP早期访问计划,其概念包括采用AMD Xilinx®的7nm Versal Premium ACAP器件的双宽PCIe Gen5加速器卡。在我们的Versal信息页面上了解更多信息。

为神经网络编程的FPGA

AI工程师使用许多不同的高级工具来描述神经网络,如PyTorch、TensorFlow、Caffe等。幸运的是,有一些API可以将人工智能代码编译到FPGA上,使工程师能够继续使用现有的工具流程。

Bittware有具备这种能力的伙伴公司:

边缘财团(EdgeCortix 

EdgeCortix动态神经加速器(DNA)是一个灵活的IP核,用于深度学习推理,在采用Agilex FPGA的BittWare卡上具有高计算能力、超低延迟和可扩展推理引擎。

美格计算 

VAS套件 Megh Computing是一个智能视频分析解决方案,适用于需要具有企业级性能的可操作见解的安全和系统集成商,同时管理TCO的考虑。

总结

现代FPGA是非常有能力的人工智能处理器,擅长低延迟、小批量的推理。当与其他处理要求相结合时,它们提供了一个强大的平台,可以创建独特的人工智能系统。根据系统的要求,一个FPGA供应商可能比其他供应商更适合。BittWare准备协助客户根据功率、处理和IO要求选择合适的FPGA系统。

了解更多关于我们的FPGA加速器卡→