FPGA初体验
最近一段时间做一点图像加速的东西,在对比了CPU、GPU的实现之后,又发现了FPGA用来做图像处理实时性比一般的GPU更高,而且GPU的结构自实现完成后就确定下来了,而FPGA本身作为一种半定制的电路,在这个加速中具有得天独厚的优势,而且功耗相比其他器件而言低很多,从而一度成为了深度学习落地的神器。
最简单最直观的一个理解就是它快,方法用硬件实现比逻辑上实现的速度会快很多,在很大程度上可以很容易实现百倍到千倍的加速。
带着一点点数字电路的基础,就在深入去在理解FPGA的基础上做一点简单的实现,对整个这个FPGA设计的流程有了基本的认知,这对FPGA的快速入门与开发奠定了很好的基础。
这个流程主要就分为要对实现的功能进行详细清晰的描述,包括各模块的组织关系,逻辑实现的时序设计,仿真实现,综合生成网表,加约束,最后生成bit流文件,经过JTAG下载到开发板中。
其核心的要点应该就在于功能实现的框图设计与逻辑划分,这一块应该重点实现的部分,在图像处理中,按我自己的理解,应该是图像输入,与计算相互融合,利用FPGA上片载的资源进行分析,让算法设计直接实现在硬件上,现在的深度学习卷积运算直接实现在硬件平台上,如何快速并行的完成这一操作,是接下来要深入的部分,继续学习其从简单到复杂实现的流程,形成全链路的设计与开发。