0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为何CPU主频比FPGA快还要说可以帮助CPU加速?

FPGA开源工作室 来源:OpenIC 作者:温戈 2021-06-30 10:57 次阅读

主频只是影响计算速度的一个因素,并不是全部。在执行一些计算密集型的任务场景中,FPGA的计算速度是更快的,目前FPGA作为CPU的协处理器已经广泛应用在IntelAMD公司产品中。

CPU、GPU、和FPGA的比较

桌面端的CPU为冯诺依曼结构,从上图可以看出,其基本组成为控制器,Cache,和ALU。而计算单元ALU在CPU中的占比不大,所以它的并行计算能力有限。

中间的为GPU,绿色的计算单元占了绝大部分,所以并行计算能力很强。

弱点是控制能力很弱,Cache小,为了保证计算能力,就需要大量的高速DDR保证数据吞吐率。

右侧为FPGA,包含可编程的I/O、DSP、memory、PCIE等,因为大量存储单元的存在,FPGA在做计算的时候可以直接从内部存储单元读取数据。

推荐一个国外的FPGA学习网站 -- fpga4fun,里边有FPGA的介绍及26个实战项目及实现代码,非常适合入门学习!

https://www.fpga4fun.com/

正因为CPU、GPU、和FPGA在结构上的不同,也让他们在实际应用层面有所侧重。

目前主流的方案是把CPU、GPU和FPGA都集成在一个SoC中,通过片内总线互联。在执行并行计算的时候,比如进行图像处理,FPGA的优势就体现出来了,通过协作分工,使芯片的工作效率最大化。

目前的3D封装以及chiplet等技术为这样的组合提供了可实现性。

为什么FPGA计算速度会比CPU更快?

在执行大量的运算场景中,FPGA相比GPU的核心优势在于低延迟。FPGA比CPU延迟低,在本质上是体系结构的区别。FPGA同时拥有流水线并行和数据并行,而CPU几乎只有数据并行,虽然也会才有流水线设计,但深度受限。因此,FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。

举个例子:

我们有四个全加器,每一个的进为输出连接到下一个的进位输入,这样实现的加法器被称作行波进位加法器(Ripple-Carry Adder, RCA)。其特点为:

结构特点:低位全加器的Cout连接到高一位全加器Cin

优点:电路布局简单,设计方便

缺点:高位的运算必须等待低位的运算完成

我们来看一下其关键路径的延迟:

总延迟时间:(T + T)*4 + T = 9T,推广到n位,总时间为(2n + 1)*T。

每一个全加器计算的时候必须等待它的进位输入产生后才能计算,所以四个全加器并不是同时进行计算的,而是一个一个的串行计算。这样会造成较大的延迟。

我们把这个电路改进一下:提前计算出“进位信号”,对进位信号进行分析。

这样我们就得到了一个:超前进位加法器(Carry-Lookahead Adder, CLA)

其中,C1、C2、C3、C4都由下面的电路计算好,需要3级门延迟,然后在全加器中关键路径上还有1级延迟

所以,总共有4级门延迟。

如果采用这种完全的超前进位,理论上的门延迟都是4级门延迟。

实际电路过于复杂,难以实现(C31需要32位的与门和或门!)

通常的方法:采用多个小规模的超前进位加法器拼接而成,例如,用4个8-bit的超前进位加法器连接成32-bit加法器。

所以我们需要更多的计算位宽或者更大的数组,或者矩阵的运算的时候,我们使用FPGA的优势就体现出来。再多的计算,也就是放置更多的硬件逻辑资源。

FPGA对CPU加速场景

在一些特定的应用场景下,单独使用CPU和CPU+FPGA两种方案所需处理时间的对比,可见FPGA对CPU的加速效果非常明显,甚至比单独使用CPU高出1~2个数量级!

FPGA的缺点

FPGA也是有缺点的,其中之一便是开发周期长。其需要对特定的应用编写特定的FPGA。只要干的事情稍有不同,一般来说FPGA代码就要重新写一遍或者是至少要修改很多东西。如果要做的事情复杂、重复性不强,就会占用大量的逻辑资源,其中的大部分处于闲置状态。

不过,Chiplet的应用对对FPGA的开发周期有一定的优化,以下是传统FPGA开发的周期和应用chiplet的开发周期对比:

未来的方向

在现在的SoC设计中,要充分考虑不同模块的特点,FPGA 和 CPU 协同工作,充分发挥各自的长处,局部性和重复性强的归 FPGA,复杂的归 CPU。从而达到整个系统算力的最优化。

在未来,FPGA会作为协处理器和CPU、GPU共存一段时间,其主要提供以下三方面的能力:

能够提供专门的硬件加速,实现各种应用中需要的关键处理功能。

FPGA设计在性能上非常灵活,使用流水线和并行结构,适应对性能的需求变化。

协处理器能为主处理器和系统存储器提供宽带,低延迟接口

目前,英特尔,AMD,赛灵思等公司都把FPGA作为协处理器集成在SoC中作为实际应用的硬件加速解决方案,这样的设计也使得CPU和FPGA在未来的一段时间内会共存,互相配合,赋能各种计算场景。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601670
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211088
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4700

    浏览量

    128673

原文标题:为什么CPU主频一般都比FPGA快,但是却说FPGA可以帮助CPU加速?

文章出处:【微信号:leezym0317,微信公众号:FPGA开源工作室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何限制容器可以使用的CPU资源

    默认情况下容器可以使用的主机 CPU 资源是不受限制的。和内存资源的使用一样,如果不对容器可以使用的 CPU 资源进行限制,一旦发生容器内程序异常使用
    的头像 发表于 10-24 17:04 159次阅读
    如何限制容器<b class='flag-5'>可以</b>使用的<b class='flag-5'>CPU</b>资源

    CPU主频是什么意思

    CPU主频,作为计算机处理器性能的一个重要指标,承载着丰富的技术内涵与实际应用价值。以下是对CPU主频的详细解析,包括其定义、用途、技术原理、影响因素以及在多个领域的实际应用。
    的头像 发表于 09-26 15:50 882次阅读

    CPU时钟周期与主频的关系和区别

    CPU时钟周期与主频是计算机体系结构中两个紧密相连且至关重要的概念,它们之间既存在关系又有所区别。以下将详细阐述CPU时钟周期与主频的关系和区别。
    的头像 发表于 09-26 15:46 1236次阅读

    什么是CPU缓存?它有哪些作用?

    CPU缓存(Cache Memory)是计算机系统中一个至关重要的组成部分,它位于CPU与内存之间,作为两者之间的临时存储器。CPU缓存的主要作用是减少CPU访问内存所需的时间,从而提
    的头像 发表于 08-22 14:54 2304次阅读

    多核CPU的优势是什么

    多核CPU(Central Processing Unit,中央处理器)作为现代计算机技术的重要里程碑,其优势在于显著提升了计算性能、多任务处理能力、系统稳定性以及能效等多个方面。以下将详细阐述多核CPU的几大优势,并结合相关
    的头像 发表于 08-22 14:30 2032次阅读

    JAVA应用CPU跳点自动DUMP工具

    背景 在做系统监控时,CPU的使用率是一个关键的指标,它反映了系统的性能稳定性以及是否存在异常情况,能帮助我们了解系统的负载情况。通过监控CPU使用率,可以判断系统是否正常运行或者是否
    的头像 发表于 08-05 17:48 473次阅读

    请问DMA控制器可以减轻CPU负担吗?

    直接存储器访问 ( DMA )控制器,可以在内存和/或外设之间传输数据,而不需要 CPU 参与每次传输。合理利用 DMA 控制器,可以减轻CPU的负担。
    的头像 发表于 03-28 09:41 647次阅读
    请问DMA控制器<b class='flag-5'>可以</b>减轻<b class='flag-5'>CPU</b>负担吗?

    什么是cpu主频和外频,它们之间关系如何

    CPU主频和外频是计算机中两个重要的频率指标,它们分别代表了CPU内部和与外部组件之间的数据传输速率。这两个频率指标之间有着密切的关系,对计算机的性能和稳定性有着重要的影响。 首先,我们来具体了解
    的头像 发表于 02-03 16:50 3787次阅读

    服务器cpu和普通电脑cpu的区别

    服务器CPU和普通电脑CPU之间存在许多区别。在以下文章中,我们将详细介绍服务器CPU和普通电脑CPU之间的区别,并探讨它们在性能、稳定性、扩展性、功耗和可靠性方面的差异。 一、性能
    的头像 发表于 02-01 11:14 6439次阅读

    为什么GPUCPU更快?

    GPUCPU更快的原因并行处理能力:GPU可以同时处理多个任务和数据,而CPU通常只能一次处理一项任务。这是因为GPU的架构使得它可以同时
    的头像 发表于 01-26 08:30 2222次阅读
    为什么GPU<b class='flag-5'>比</b><b class='flag-5'>CPU</b>更快?

    如何能够实现通用FPGA问题?

    FPGA 是一种伪通用计算加速器,与 GPGPU(通用 GPU)类似,FPGA 可以很好地卸载特定类型的计算。从编程角度上讲,FPGA
    发表于 12-29 10:29 418次阅读

    CPU和GPU之间的主要区别

    的任务。GPU的指令有限,只能执行与图形相关的任务。它通常可以执行任何类型的任务,包括图形,但不是以非常优化的方式。虽然GPU的唯一目的是CPU更快地处理图像和3
    的头像 发表于 12-14 08:28 757次阅读
    <b class='flag-5'>CPU</b>和GPU之间的主要区别

    cpu温度太高怎么解决?cpu温度高的原因?

    cpu温度太高怎么解决?cpu温度高的原因? CPU (中央处理器) 温度过高可能会导致系统崩溃、性能下降甚至损坏硬件,因此是一个需要严肃对待的问题。在本文中,我们将探讨CPU温度过高
    的头像 发表于 12-09 16:15 3046次阅读

    影响CPU性能的高低的因素是什么

    根据以上公式,可以反向推算出 CPU 的外频。如 CPU 主频为 3.2GHz,倍频为 24 时,外频为 3200MHz÷24=133MHz。
    发表于 12-08 12:19 1994次阅读

    cpu满载是什么原因 cpu容易满载怎么办 cpu过高怎么处理

    cpu满载是什么原因 cpu容易满载怎么办 cpu过高怎么处理  CPU满载是指CPU的使用率非常高,接近或达到100%的状态。
    的头像 发表于 11-28 17:29 1w次阅读