目前在做FPGA移植加速CNN卷积神经网络Inference相关的学习,使用的是Xilinx公司的ZYNQ-7000系列的FPGA开发板,该博客为记录相关学习内容,如有问题欢迎指教。前面已经介绍了关于FPGA架构和基本组成《FPGA学习–架构和基本组成单元(一)》 ,下面参考Xilinx Vivado官方文档学习硬件设计的基本概念。
概念
处理器(CPU)和FPGA之间的关键区别之一就是处理架构是否固定。这种差异直接影响每个编译器的工作方式。处理器CPU的计算体系结构是固定的,编译器的工作是确定软件应用程序如何最好地适应处理结构。应用程序性能取决于应用程序映射到处理器功能的程度以及正确执行所需的处理器指令数量。
相比之下,FPGA类似于带有一组构建块的空白平板。在的Vivado ®编译器HLS中,目标是从最适合的软件程序中创建一个处理架构。指导Vivado HLS编译器创建最佳处理架构的过程需要有关硬件设计概念的基础知识。
时钟频率
CPU的时钟频率是算法执行效率的第一考虑因素,一般来说高时钟频率有更高的执行效率。虽然这是一般常识,但是如果以时钟频率高低来作为选择CPU或者FPGA的标准,这样实际上并不准确,因为CPU与FPGA之间的时钟频率名义上有一定的差异,例如下表中的CUP与FPGA最大时钟频率很常见:
对上表分析,其实并不是CPU的性能是FPGA的四倍,不能简单的以时钟频率比较性能。CPU与FPGA性能评判主要区别是软件如何被执行,一般来说,CPU是能够执行任何程序的通用平台,包括CPU和CPU上其他结构,软件必须在该结构上执行,编译后的软件按照一组指令按顺序执行,无论CPU类型如何,指令的执行始终是相同的,应用程序的每条指令都必须经过以下阶段如下图1:
取指令(IF);
指令解码(ID);
执行(EXE);
内存操作(MEM);
回写(WB)。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !