FPGA深度学习的方向概述
传统的CNN(Tensorflow、caffe)是在GPU、CPU上面进行的,但因为其功耗高、散热不好、价格昂贵。但是在单纯的FPGA这类芯片上进行深度学习类的算法,往往开发难度大,开发周期漫长,不适合CNN算法的实现。
CNN算法的步骤划分,训练(PC)+异构平台(SOC)。
因此,才出现了各种异构平台SOC,如FPGA+ARM的架构,Intel Xilinx都有自己的异构芯片。Intel主推自己的OpenCL ,Xilinx主推自己的HLS 相互竞争,其实本质上都是采用更高层次的开发语言(C/C++但是还是有些区别)进行开发,相应两家公司都有自己的开发环境,该环境可以映射为具体的硬件结构,目前现在的大部分公司采用Xilinx FPGA进行深度学习相关的开发工作。先做出深度学习的Demo,在进行具体算法的优化,具体与FPGA的硬件结构有关。
Xilinx主打的Revison开发堆栈就是希望更多的软件工程师既掌握FPGA的开发方法,以软件定义硬件。
现总结如下:
现如今的深度学习硬件平台:
(1)GPU /CPU
(2)SOC
(3)深鉴公开的DPU架构(ZYNQ)
(4)Google 的TPU架构
深度学习FPGA开发方式主推:软硬件协同设计
体会: