FPGA(Field Programmable Gate Array)& CNN

版权声明:belongs to tony2278 https://blog.csdn.net/tony2278/article/details/88629438

 通用系统架构

目前主流FPGA芯片生产商有因特尔(Intel)和赛灵思(Xilinx),这两家厂商均有自己的一套驱动和FPGA设计的标准,因此需要设计一个通用系统架构去适配不同厂商的接口,并灵活的进行扩展。这主要体现需要兼容不同的总线互联标准、不同的IP接口和时序等。

由于赛灵思一般采用的AXI总线互联,而因特尔则是采用CCIP或者Avalon总线进行系统各功能模块互联,因此在静态区域需要增加一个总线适配模块,完成从CCIP或者Avalon到AXI总线的转换,这样只要用户的IP满足AXI总线,就可以方便的移植到不同平台中。

IP主要指的是FPGA厂商为了缩短用户的开发时间,提供给用户的不同类型功能模块。例如常见的ROM/RAM/FIFO等部件,不同的厂商往往在接口和时序存在比较大的差异,这对于用户的设计和集成是一件头疼的事情。为了最大限度减少用户的二次开发,采用一个统一的wrapper进行封装,提供一个通用的外部接口和遵循业界常用的时序标准,隐藏内部各家厂商的实现细节。

支持C/C++/OpenCL开发

传统FPGA硬件开发采用硬件描述语言(Hardware Description Language,简称:HDL)进行开发,它是电子系统硬件行为描述、结构描述、数据流描述的语言。利用这种语言,数字电路系统的设计可以从顶层到底层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统,经过综合工具转换到门级电路网表。然而这要求设计人员必须必须对硬件架构,电路具体结构和工作原理有深入理论和实践知识,让很多软件开发者望而却步。

增加高级系统语言的支持,让软件开发人员即便之前没有FPGA使用经验,也能受益于 FPGA平台的优势。集成设计环境不仅可提供编码模板和软件库,而且还能对各种开发目标进行编译、调试和特性分析。基于CPU或者GPU 开发能够轻松迁移到 FPGA 上,同时还可在他们熟悉的工作流程中维护和复用OpenCL、C和C++代码。这样能让设计人员能够集中精力定义算法,而不是重点关注硬件设计的具体电路结构和时序。同时OpenCL编译器将相同的高级描述转换为流水线,从而发挥了FPGA器件的优势。它能够大幅度提高性能,同时降低了功耗。此外,与使用HDL的传统FPGA开发方法相比,使用OpenCL/C/C++进行软件、算法等开发能够缩短产品的开发时间,让更多的软件开发者能够使用FPGA进行开发。

使用OpenCL描述来开发FPGA设计,与基于HDL设计的传统方法相比,具有很多优势。开发软件可编程器件的流程一般包括进行构思、在C等高级语言中对算法编程,然后使用自动编译器来建立指令流。面向OpenCL的SDK提供了设计环境,很容易在FPGA上实现OpenCL应用。

“CPU+FPGA”新架构

英特尔......把FPGA集成到处理器中,结合通用处理器及专用电路的优势,这样就能最大限度发挥软件灵活性以及FPGA定制硬件在性能上的优势。这种定制处理器以Xeon(至强)处理器为基础,首次在单一封装内集成了FPGA可编程阵列电路,插槽兼容标准的Xeon E5处理器。它的性能很强悍,根据业界标准的FPGA加速测试,其性能提升了10倍,而且接口延迟更低,一致性更好。

.....................

深度卷积神经网络(CNN)在多个计算机视觉任务上取得了优秀的性能,包括图像分类、目标检测和语义分割。CNN 的高准确率是以极大的计算复杂度为代价的,因为它需要对特征图中的所有区域进行综合评估。为了解决如此巨大的计算压力,研究者使用 GPU、FPGA 和 ASIC 等硬件加速器来加速 CNN 。其中,FPGA 因其高性能、低能耗和可重配置性成为有效解决方案。更重要的是,使用 C 或 C++的高级综合(High Level Synthesis,HLS)大幅降低了 FPGA 的编程障碍,并提高了生产效率

目前能够进行神经网络加速的FPGA ,xilinx 的UltraScale K/V/Zynq系列是比较合适的,但是这些属于高端FPGA,当然,不是说中低端不行,而是以目前主流网络和现有的优化手段,在资源较少的FPGA 上进行加速难度较大,而高端FPGA 价格都比较高,所以必须得考虑成本问题。
 

RF:

1 腾讯FPGA云-背后的技术

商汤联合提出基于 FPGA 的快速 Winograd 算法:实现 FPGA 之上最优的 CNN 表现与能耗

FPGA的CNN加速,你怎么看?

CNN唯一开源FPGA实现下载

PipeCNN: An OpenCL-Based Open-Source FPGA Accelerator for Convolution Neural Networks
相关下载链接://download.csdn.net/download/zuoph/10385538?utm_source=bbsseo

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/88629438
CNN