论文阅读笔记:面向卷积神经网络的 FPGA 设计

降低卷积操作的快速算法

常见算法:FFT、Winogard算法
快速算法常见的三个步骤:

  • 将输入图像与卷积核转换到特殊域
  • 将转换后的数据进行点对点相乘
  • 将相乘的结果逆变换回时域

二维FFT算法

1.首先对二维矩阵的各行进行一维 FFT 操作, 而后对各列进行 FFT 操作
2.一维FFT:不断将序列长度对半分,直至原始序列呗划分成多个两点的FFT

Wingoard算法

利用矩阵运算,将矩阵相乘中重复的部分进行处理,以减少乘法的数量,提高运算的速度。

FFT和Winogard算法的对比

首先介绍矩阵乘法的缺点:存在数据的冗余复制,FPGA片上内存资源较少,不利于开展计算。
FFT的操作在复数领域进行,因此对乘法的减少相对较少。
Wingoard算法过程在实数域完成,但是Wingoard的转换代价更高,因为随着Winogard算法参数增加,常数矩阵的值会骤增。

快速算法的优缺点

  • 优点:快速算法能有效降低卷积操作的乘法次数,提高加速比。快速算法带来的额外的操作通过位运算来减少其消耗的资源。
  • 缺点:逻辑资源使用更多、对片上缓存的容量要求更高、对于片上和片外数据的带宽需求更大。

FPGA优化总结

FPGA的优化主要分为四大类:

  • 设计空间探索
  • 数据通路优化
  • 片上资源优化
  • 硬件单元生成

你可能感兴趣的:(fpga,卷积神经网络,算法,卷积)