FPGA在卷积神经网络中的双倍算力应用——supertile技术分析

FPGA在卷积神经网络中的双倍算力应用——Supertile技术分析


  近年来随着智慧安防、生物医疗、汽车电子等强实时性应用开始快速兴起,各类AI模型层出不穷,神经网络结构日益复杂,所需算力也越来越大,这使得神经网络的硬件加速成为近几年的热点研究,不论是工业界还是学术届,AI的硬件加速方案层出不穷,但主要分为FPGAASIC两类。


  FPGA不像ASIC,可以通过堆叠大量的计算单元来提升板卡算力,所以在FPGA上进行算力提升更受局限,本文将介绍一种基于Xilinx FPGA平台中DSP单元的supertile技术,该技术可以将DSP的计算效率提升两倍


什么是Supertile技术

  Supertile其本质是一种多周期路径技术(multi-path)的衍生,Xilinx在实际芯片内将两块18K的BRAM和两个DSP Slice组成的DSP tile平行放置,高度相同,以此定制专用的高速DSP。具体结构如下图所示,BRAM和DSP之间分配了五个CLB(Configurable logic block)垂直排布,用来完成一些外围逻辑。

FPGA在卷积神经网络中的双倍算力应用——supertile技术分析_第1张图片


  在这种结构中,围绕DSP的逻辑布局布线的时序约束将十分宽松,能更容易提高计算电路的主频,使缓存数据能以更快的速度在DSP和BRAM间传输,大大提高了计算单元的处理速度


  Xilinx FPGA DSP内部由一个预加法器(Pre-adder)、一个27-bits(25-bits)×18-bits乘法器与一个算数逻辑单元(ALU)组成,配合Xilinx官方设计的内部流水线结构,以及多样化的计算模式配置,使其能完成大部分数学运算。甚至通过多DSP级联,可以实现更复杂,规模更大的算法,根据Xilinx官方文档描述,DSP最高频率可以达到661MHz,具体DSP内部结构如下:

FPGA在卷积神经网络中的双倍算力应用——supertile技术分析_第2张图片

  我们可以利用DSP超高频率的特点,将DSP频率设置为系统主频的2倍,以此实现multi-path,在一个系统时钟周期内,完成两次乘加的计算,如上图A×B和D×B的datapath



需要注意的是,每个DSP周围的资源是有限的,如果超过限制,那么可能达不到设计者的预期效果。


Supertile的应用

  理解了Supertile究竟是怎么一回事后,接下来具体分析一下,Supertile是如何在卷积神经网络中进行算力提升。

  • 假设FPGA中系统主频为200MHz,可以利用Supertile将DSP主频设置在400MHz;
  • 同时将卷积核的值从内存中取出,并分别发送到DSP的两个预加法端口A、D上,将特征值发送到DSP的乘数端口B上
  • 在5ns的系统时钟周期中,DSP将进行AD的切换,在前2.5ns中,DSP计算了AB;后2.5ns中,计算DB
  • 以此在不影响主频的前提下,完成两个卷积的操作,具体流程如下图:
    FPGA在卷积神经网络中的双倍算力应用——supertile技术分析_第3张图片

  此外,卷积神经网络的计算还需要多通道和卷积核中不同行列值的乘累加,这样都可以通过DSP的级联进行实现,在本文就不详细展开了。



搜索关注我的微信公众号【IC墨鱼仔】,获取我的更多IC干货分享!

你可能感兴趣的:(神经网络硬件加速,fpga开发,cnn,人工智能)