基于FPGA的CNN算法移植(一)概述

 

做了半年的CNN算法移植,有时候需要回避一些东西,所以写的东西不能太多。简单提一下自己的总结,既是笔记,又是与网友们交流讨论。

        CNN兴起,深圳这个躁动的城市很多人就想趁着这个机会捞一笔风投。于是各种基于CNN的在GPU上的demo出现后立马就成立公司,招FPGA工程师或者ARM 等嵌入式工程师,希望通过他们进行产品落地。毕竟GPU功耗高,散热不好,价格不便宜。于是有些公司招聘FPGA工程师,就问:你会做算法优化吗?

         基于FPGA的CNN算法移植误区一:FPGA工程师做算法优化。

        嗯,已经很不错了,知道将CNN移植到嵌入式平台需要做优化。可是百度一下CNN优化策略,那些基于tensorflow,caffe的东西是FPGA干的活儿吗(为啥不是算法工程师要懂FPGA呢,为难一下算法工程师)?  当然有人说作为FPGA工程师对算法一无所知没有核心竞争力,我想说CNN的算法压缩是在它原有的开发平台上进行的,不是在FPGA上进行的,愿意学CNN的算法开发平台的同学当然好,只是难度很大。还有一点,作为FPGA工程师目前形势很严峻,我们自身有太多东西要学,因为现在FPGA都往SOC发展了,xilinx推出的一大堆工具等待着我们去熟悉。还有一种思维那就是觉得xilinx很可能也走不远,所以趁早转行了的。

        基于FPGA的CNN算法移植误区二:FPGA工程师先做demo再慢慢优化。

        有些公司稍微好点,最后明白了算法优化是算法工程师干的事情。后面要求FPGA工程师按照目前这个样子做一款Demo出来,性能不好没关系,后面再慢慢优化。姑且不论HLS ,SDsoc的实现方法对于不同的算法差异有多大,因为这两个工具我才刚玩,可是基于HDL设计的硬件架构,算法改动一点点可能导致整个FPGA项目推倒重来。所以对于FPGA的工程,要不就是目前这个样子出结果。要不就是推倒重来。—— 或许HLS,SDsoc不是,你可以不断的选择优化策略。

         基于FPGA的CNN算法移植误区三:性能不好怪FPGA工程师硬件架构不好?

        这个我只能说或许,可是一般的FPGA工程师能去定制架构水平也不会太差,不至于胡拼乱凑一个工程出来,特别对于庞大的CNN想胡拼乱凑都难。你必须思路清晰,结构清晰。还有一个主要的,对于CNN算法移植FPGA硬件上真的开不出花儿,这个观点知乎上也有大牛提到了。所以深鉴公开DPU 架构,google公开TPU 架构,为何?因为硬件就是这么玩的,没啥新意。

         

基于FPGA的CNN算法移植(一)概述

猜你喜欢

转载自blog.csdn.net/tony2278/article/details/88578016
今日推荐