为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?( 二 )


为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
文章图片
所以 , 总共有4级门延迟 。
如果采用这种完全的超前进位 , 理论上的门延迟都是4级门延迟
实际电路过于复杂 , 难以实现(C31需要32位的与门和或门!)
通常的方法:采用多个小规模的超前进位加法器拼接而成 , 例如 , 用4个8-bit的超前进位加法器连接成32-bit加法器 。
所以我们需要更多的计算位宽或者更大的数组 , 或者矩阵的运算的时候 , 我们使用FPGA的优势就体现出来 。 再多的计算 , 也就是放置更多的硬件逻辑资源 。
FPGA对CPU加速场景
下表列出了在一些特定的应用场景下 , 单独使用CPU和CPU+FPGA两种方案所需处理时间的对比 , 可见FPGA对CPU的加速效果非常明显 , 甚至比单独使用CPU高出1~2个数量级!
为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
文章图片
FPGA的缺点
FPGA也是有缺点的 , 其中之一便是开发周期长 。 其需要对特定的应用编写特定的FPGA 。 只要干的事情稍有不同 , 一般来说FPGA代码就要重新写一遍或者是至少要修改很多东西 。 如果要做的事情复杂、重复性不强 , 就会占用大量的逻辑资源 , 其中的大部分处于闲置状态 。
不过 , Chiplet的应用对对FPGA的开发周期有一定的优化 , 以下是传统FPGA开发的周期和应用chiplet的开发周期对比:
为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
文章图片
未来的方向
在现在的SoC设计中 , 要充分考虑不同模块的特点 , FPGA和CPU协同工作 , 充分发挥各自的长处 , 局部性和重复性强的归FPGA , 复杂的归CPU 。 从而达到整个系统算力的最优化 。
为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?
文章图片
在未来 , FPGA会作为协处理器和CPU、GPU共存一段时间 , 其主要提供以下三方面的能力:
能够提供专门的硬件加速 , 实现各种应用中需要的关键处理功能 。
FPGA设计在性能上非常灵活 , 使用流水线和并行结构 , 适应对性能的需求变化 。
协处理器能为主处理器和系统存储器提供宽带 , 低延迟接口 。
目前 , 英特尔 , AMD , 赛灵思等公司都把FPGA作为协处理器集成在SoC中作为实际应用的硬件加速解决方案 , 这样的设计也使得CPU和FPGA在未来的一段时间内会共存 , 互相配合 , 赋能各种计算场景 。