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

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

3天内不再提示

为什么FPGA主频比CPU慢,但却可以用来帮CPU做加速

电子工程师 来源:FPGA技术江湖 作者:EDN电子技术设计 2020-11-20 09:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我们知道,FPGA的频率一般只有几百MHz,而CPU的频率却高达数GHz。那么,有不少网友心中就有一个疑问:“为什么FPGA主频比CPU慢,但却可以用来帮CPU做加速?”。

今天,EDN就和大家系统性地讨论下这个问题。

将FPGA主频与CPU相比不妥

在开始之前,首先要明确一点,将FPGA的主频与CPU比较,实际是风马牛不相及的问题。FPGA和CPU是两种完全不同的器件,前者是专用,是硬件编程,而后者是通用,是软件编程。

不同体系结构性能和灵活性的比较。(图片来源:《如何评价微软在数据中心使用 FPGA 代替传统 CPU 的做法?》)

表面上看,FPGA的时钟频率要低;对于通用计算任务,FPGA设计貌似不如CPU设计。但是实际上,单个FPGA的并行度却比CPU要高得多。FPGA的行为是确定性的,用作硬件加速器没有时间片、线程或资源冲突的问题。它始终以完全相同的速度执行一件事。因此,如果需要低延迟,那么FPGA就可能是最佳选择。

计算密集型任务,CPU、GPU、FPGA、ASIC 的数量级比较(以16位整数乘法为例,数字仅为数量级的估计)(图片来源:《如何评价微软在数据中心使用 FPGA 代替传统 CPU 的做法?》)

FPGA并行计算机制

如知乎网友young cc所言,虽然CPU主频很高,但其是通用处理器,做某个特定运算(如信号处理,图像处理)可能需要很多个时钟周期。而FPGA可以通过编程重组电路,直接生成专用电路。加上电路并行性,可能做这个特定运算只需要一个时钟周期。

举例来说,CPU主频为3GHz,FPGA主频为200MHz。若做某个特定运算,CPU需要30个时钟周期,而FPGA只需一个,那么耗时情况是:

CPU:30/3GHz =10ns;

FPGA:1/200MHz =5ns。

可以看到,FPGA做这个特定运算速度比CPU快,能帮助加速。

另外,CPU的主频是加过流水线之后的。比如是15级流水线,则第一条指令执行了15个时钟周期后才能出结果。

但是,使用FPGA也不一定总能做加速。

例如,知乎网友Evan172就表示,使用FPGA做加速,只是在某些强计算和数据处理的方面,因为其硬件电路并行运行和有很多DSP硬核资源供调用的特点,可以工作得更出色。

FPGA本身也只是辅助角色,做控制的还是CPU本身,所以FPGA并不能代替CPU,只是在完成一件大任务的过程中将某部分任务分解给FPGA可以更好地一起完成任务。在这过程中也会有额外的开销产生,在某些场合,可能用了FPGA而效果更差也是有的。

另外,通常说的使用FPGA加速比CPU和GPU省电,是指在完成同样的任务下,FPGA耗费的电力比起CPU和GPU更少一些。这是相对而言的,并不是说FPGA本身就一定省电。

一个有趣的例子:数组加法计算

知乎用户doing举了一个很有趣的例子。他指出,假设用FPGA完整实现了CPU,然后再跑软件的话,的确比CPU慢。问题是FPGA不会那么干,它会直指问题本质,解决问题。

例如,有两个数组,其中有256个32位数。现在要把它们对应相加变成一个数组,用CPU写最快大概是这个样子:

r[0] = a[0] + b[0];

r[1] = a[1] + b[1];

...

r[255] = a[255] + b[255];

当然也可能会这么写(在分支预测准确,指令缓存不大的情况下可能更快):

for (int i = 0; i < 255; i++)

r[i] = a[i] + b[i];

对FPGA来说,也可以用上面相同的写法,不同在于:

CPU是一个一个加法计算,而FPGA排好逻辑电路,在一个时钟周期内计算完毕。就算CPU主频比FPGA快100倍也赶不上啊。话说后来CPU大量的增加SIMD指令,就有点这个意思,不过这相当于提供库函数,没那么灵活。

FPGA并行是真并行,CPU完全没得比。CPU如果想并行最多也就是让多个核并行,但是对于大部分算法实现来说,如上例,多个核之间的同步调度开销远远大于计算开销,就算多个核之间的调用开销可以做的很小,一般CPU也就那几个核,而FPGA只要门足够,想并行几路就可以并行几路。

所以在做可并行的计算密集型任务时,比如信号处理,网络传输等等FPGA可以帮上忙;但是如果做常见的以串行为主的任务,FPGA的确远远比不上CPU。如果要类比的话,有点像似GPU和CPU之间的关系。

“当年写Verilog的时候,我就想如果CPU里面自带一块FPGA,应用程序程序可以在初始化期间直接烧一段代码下去,那岂不是很爽。后来,有了能写shader的3D显卡...”

为什么FPGA成为数据中心尖端技术?

最后再讨论一个话题,就是为什么FPGA一直是数据中心领域最尖端的技术?

有人可能认为,再大的问题(算力)都可以通过堆CPU核心来解决。那么,假设有一台强大的48核服务器,即使使用非常高端的FPGA,也很难达到相同的吞吐量。而且,FPGA硬件设计还需要由强大的团队来完成,非常烧钱。

这时,如果把机会成本和能源效率两者考虑进去,好处就开始显现出来了。

首先来看能源效率。假设这台48核服务器的功耗为400W并且发热严重,那么就会对数据中心运营不利——能耗和散热是数据中心运营的两项最大支出。而将FPGA连接起来只执行一项任务,就可以实现很高的能效而开销极低。通过正确的设计,可以在实现低功耗的同时获得高吞吐量。

其次,机会成本(这个问题不太明显)。系统中的CPU内核数量就那么多。购买新的内核并且安装需要花很长时间,而且最好是将通用CPU内核保留用于通用任务(例如虚拟机订阅)。每个CPU核卖不出去就会烧钱。

当有任务大量占用CPU时间(例如AI推理)时,FPGA就成为了不错的选择。

一个有关微软Project Catapult项目当中FPGA的趣事

当年,微软必应团队在其Project Catapult项目中发现,在启用FPGA时,CPU的总体利用率实际上略有上升。所有的人都感到困惑,因为从直觉来看FPGA应该要减少CPU负载。但是后来他们发现,数据中心的业务流量达到了原来的2倍!由于效率提高,流量实现了两倍的负载均衡。由此可见FPGA的强大之处。

结语

维基百科的相关词条提到两点:FPGA的优势在于其并行特性,有时对于某些应用而言可以使速度明显变快;可以使用FPGA来对算法中的某些部分加速,也可以在FPGA和通用处理器之间共享部分计算。

综上,FPGA有两个优点:FPGA并行度远超CPU;CPU是通用电路,FPGA是定制电路。但是也有两个缺点:开发周期长;并不是所有东西都适合FPGA。

责任编辑:xj

原文标题:为什么FPGA主频比CPU慢,却可以帮其加速?

文章出处:【微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

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

    关注

    1664

    文章

    22501

    浏览量

    639031
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11326

    浏览量

    225861
  • 主频
    +关注

    关注

    1

    文章

    22

    浏览量

    9347

原文标题:为什么FPGA主频比CPU慢,却可以帮其加速?

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Arm AGI CPU加速新一代基础设施建设

    近期,Arm 推出 Arm AGI CPU,一款由 Arm 自主设计、面向人工智能 (AI) 数据中心的 CPU,旨在满足日益增长的代理式 AI (Agentic AI) 工作负载需求。这标志着 Arm 计算平台进入新的发展阶段,首次将产品矩阵延伸至量产芯片产品领域。
    的头像 发表于 04-09 15:55 298次阅读

    基于openEuler平台的CPU、GPU与FPGA异构加速实战

    随着 AI、视频处理、加密和高性能计算需求的增长,单一 CPU 已无法满足低延迟、高吞吐量的计算需求。openEuler 作为面向企业和云端的开源操作系统,在 多样算力支持 方面表现出色,能够高效调度 CPU、GPU、FPGA
    的头像 发表于 04-08 11:02 624次阅读
    基于openEuler平台的<b class='flag-5'>CPU</b>、GPU与<b class='flag-5'>FPGA</b>异构<b class='flag-5'>加速</b>实战

    Linux服务器CPU飙高怎么排查

    线上 CPU 飙高最怕两件事:一是盯着 top 看了半小时,最后还是不知道是谁打满了核;二是误把负载高当成 CPU 高,处理动作反了,越处理越抖。生产环境里,CPU 问题通常不是单一
    的头像 发表于 03-11 09:48 407次阅读

    DIY电脑小白必看:CPU涂导热硅脂教程与注意事项

    在组装或升级电脑时,很多人会把注意力放在CPU、散热器、主板等核心硬件上,却忽略了连接它们之间的一个关键环节——导热硅脂。虽然它只是一层薄薄的“膏体”,但却直接影响CPU的散热效率和系统稳定性。导热
    的头像 发表于 02-05 17:07 909次阅读
    DIY电脑小白必看:<b class='flag-5'>CPU</b>涂导热硅脂教程与注意事项

    MangoTree新品剧透:全新PXI形态+最强CPU #PXI #PXIe #测控 #CPU

    cpu
    芒果树数字
    发布于 :2026年01月30日 11:36:11

    那么龙芯CPU性能如何呢?

    龙芯系列CPU的最新动态 以下是龙芯系列CPU的最新动态(截至2025年10月): 龙芯CPU的性能如何? 以下是龙芯CPU性能的详细分析,结合最新产品与技术动态: 一、桌面处理器性能
    的头像 发表于 12-03 13:42 1415次阅读

    CPU 到 GPU,渲染技术如何重塑游戏、影视与设计?

    渲染技术是计算机图形学的核心内容之一,它是将三维场景转换为二维图像的过程。渲染技术一直在不断演进,从最初的CPU渲染到后来的GPU渲染,性能和质量都有了显著提升。从CPU到GPU:技术特点和优缺点
    的头像 发表于 09-01 12:16 1112次阅读
    从 <b class='flag-5'>CPU</b> 到 GPU,渲染技术如何重塑游戏、影视与设计?

    开源的e203rtl 可以FPGA板子(DDRt)跑50M主频吗?

    开源的e203rtl 可以FPGA板子(DDRt)跑50M主频吗? 跑25M时,可以通过spi打印出来数数据,但是跑50M主频时候,看似下
    发表于 07-11 07:58

    单核CPU网关和双核CPU网关有什么区别

    单核CPU网关与双核CPU网关的核心区别在于处理能力、多任务效率、性能表现及适用场景,双核CPU网关在多任务处理、复杂计算和响应速度上具有显著优势,而单核CPU网关则更适合轻量级、低负
    的头像 发表于 07-05 14:37 1299次阅读

    主控CPU全能选手,英特尔至强6助力AI系统高效运转

    有什么特殊之处呢? AI加速系统为何看重CPU主控能力? 作为造价极高的AI加速系统,DGX B300可以不计成本地选任何CPU,只要它能充
    的头像 发表于 06-27 11:44 1017次阅读
    主控<b class='flag-5'>CPU</b>全能选手,英特尔至强6助力AI系统高效运转

    一片主板可以有多少路CPU

    CPU是计算机的中央处理器,可以直接影响到服务器的并行处理能力。CPU路数越多,服务器可以同时处理的任务数量就越多,从而提高了整体的处理效率和性能,特别是在处理大量并发任务时,多路服务
    的头像 发表于 06-13 09:14 860次阅读
    一片主板<b class='flag-5'>可以</b>有多少路<b class='flag-5'>CPU</b>?

    CPU Socket的基本结构和工作原理

    CPU Socket是连接中央处理单元(CPU)与计算机主板之间的关键部件,它充当着传递电信号、电源和散热等多重功能的枢纽。在整个计算机系统中,CPU Socket的作用至关重要,尤其在高性能计算
    的头像 发表于 05-08 17:14 2788次阅读

    在KiCad的PCB编辑其中,有一个实用的工具,可以用来清理布线与过孔

    在KiCad的PCB编辑其中,有一个实用的工具,可以用来清理布线与过孔。不仅可以移除没有使用的布线与过孔,还可以清理冗余的重叠导线。
    发表于 05-06 21:57

    国产电脑CPU性能排行榜TOP7:CPU缓存/主频/多核实测数据分析

    在科技飞速发展的今天,电脑CPU(中央处理器)无疑是计算机性能的核心部件。而长久以来,国际品牌在这一领域占据着主导地位,给人一种国产CPU性能不行的刻板印象。然而,随着技术的不断进步和研发投入的加大,国产电脑CPU性能已经取得了
    的头像 发表于 04-29 10:38 3874次阅读
    国产电脑<b class='flag-5'>CPU</b>性能排行榜TOP7:<b class='flag-5'>CPU</b>缓存/<b class='flag-5'>主频</b>/多核实测数据分析

    信创国产CPU推荐

    cpu
    jf_10805031
    发布于 :2025年04月23日 17:20:43