FPGA是如何实现硬件加速的

CNN当神经网络算法刚刚出来时,采用了FPGA为什么要率先作为物理机器使用?FPGA作为算法加速器而不是通用CPU,谈个人理解。

首先明确FPGA与通用CPU的区别,CPU装配线结构设置在里面,FPGA采用自定制并行结构。就比如CPU最经典的5级装配线结构,一个指令的操作过程可分为五个独立的子指令,即指令、代码、执行、访问和存储,并通过装配线架构分别执行上述5个独立指令,以确保每个时钟周期内执行一个指令。而FPGA这是一张白纸。用户可以自行增加硬件资源的两倍,增加的硬件资源可以在同一时间平行运行,以增加处理能力的成本。

以简单的c程序为例,

for(i=0;i<10;i++) x[i] = a[i] + b[i];

for如果采用上述5级流水线架构,循环下的加法运算CPU,执行完一次 x=a+b操作需要一个时钟周期(5级流水线完成5个子指令),整个算法执行需要10个硬件周期。FPGA一般来说,做上述操作,FPGA上述算法将直接复制十份,如下图所示

FPGA是如何实现硬件加速的

因为之前说过FPGA它是一张白纸,用户可以根据需要使用其硬件资源。如果采用上图所示的方法,FPGA实现上述算法只需要一个硬件时钟周期。即计算时间比较5级流水架构CPU缩减至1/10。

当然,根据用户的需要,这部分算法可以使用5倍和2倍的硬件资源,而多余的硬件资源可以用于更核心的算法部分。

(0)
上一篇 2022年12月14日 上午8:13
下一篇 2022年12月14日 上午8:14

相关推荐

wx