Achronix - 实测!实测!AlexNet卷积核在卷积核在FPGA占占90%资源仍跑资源仍跑
750MHz|算力达算力达288万张图像万张图像/秒秒
MLP_Conv2D是功能齐全的设计,可将2D输入图像与多个内核同时进行卷积。 该设计充分利用了MLP和BRAM模块,
每个MLP一个周期执行12个int8乘法。此外,MLP列和BRAM块均等级联以有效地将图像数据传递,从而允许同时处理
多个内核。 该设计使用NoC接入点(NAP)从片上网络(NoC)读取或写入数据。NoC连接到SpeedSTer7t器件中
的GDDR6控制器再到外部存储器。 AlexNet 尽管初为AlexNet图像和内核大小配置了MLP_Conv2D设计,但是
2D卷积是一个通用过程,因此可以重新配置该设计并使其适应许多不同的2D方法。 2D卷积的一般原理是在图像
(实际上是
MLP_Conv2D是功能齐全的设计,可将2D输入图像与多个内核同时进行卷积。 该设计充分利用了MLP和BRAM模块,每个MLP
一个周期执行12个int8乘法。此外,MLP列和BRAM块均等级联以有效地将图像数据传递,从而允许同时处理多个内核。
该设计使用NoC接入点(NAP)从片上网络(NoC)读取或写入数据。NoC连接到SpeedSTer7t器件中的GDDR6控制器再到外部
存储器。
AlexNet
尽管初为AlexNet图像和内核大小配置了MLP_Conv2D设计,但是2D卷积是一个通用过程,因此可以重新配置该设计并使其适应
许多不同的2D方法。
2D卷积的一般原理是在图像(实际上是另一个2D矩阵)上传递内核(2D矩阵)。对于每次计算,内核均以输入图像的像素为中
心,并对每个内核值(称为权重)与其当前对齐的像素执行乘法运算。这些乘法的总和给出了原始图像像素的特定卷积结果。然后将
内核移至下一个像素,并重复该过程。
经过训练的内核,2D卷积生成一个输出结果图像,突出显示输入图像的特定特征,例如垂直线,水平线,变化角度的对角线和变
化半径的曲线。然后可以将这些特征输入到其他处理层(包括其他2D卷积),然后可以将其标识为(通常在软件中)为特定对象。
因此,二维卷积处理不应被视为图像识别的完整解决方案,而应被视为处理操作链中的单个关键组件。
乘法密度
2D卷积的挑战是所需的乘法数量,这就是MLP中专用的乘法器阵列。对于AlexNet配置,每个内核为11×11= 121个权重值。但
是,卷积实际上是3D的,因为输入图像具有三层(RGB),因此一组内核有121×3 = 363个乘法来产生单个输出结果。AlexNet输入图
像为227×227;但是,此图像的stride为4(在计算之间内核移动了四个像素)。此过程导致输出结果矩阵为54×54 = 2916个结果。因
此,对于一幅图像需要363×2916 = 1,058,508次乘法;即处理一个图像需要进行一百万次以上的累加运算。其中单个Kernel进行2D卷
积的动态示意图如下: