广告

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

2020-11-06 09:37:27 赵明灿 阅读:
FPGA的频率一般只有几百MHz,而CPU的频率却高达数GHz。那么,有不少网友心中就有一个疑问:“为什么FPGA主频比CPU慢,但却可以用来帮CPU做加速?”。

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

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

将FPGA主频与CPU相比不妥

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

mEqednc

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

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

mEqednc

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

FPGA并行计算机制

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

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

CPU:30/3GHz =10ns;mEqednc

FPGA:1/200MHz =5ns。mEqednc

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

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

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

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

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

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

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

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

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

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

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

...mEqednc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

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

本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
赵明灿
赵明灿是EDN China的产业分析师/技术编辑。他在电子行业拥有10多年的从业经验。在加入ASPENCORE之前,他曾在电源和智能电表等领域担任过4年的工程师。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 商务部暂停天然砂对台湾地区出口,台积电难受了 据EDN电子技术设计了解,商务部网站8月3日早晨8点发布最新消息,表示将从即日起暂停天然砂对台湾地区出口。不少网友认为暂停天然砂对台湾地区的出口,此举将严重影响台湾的建筑业,实则影响不仅仅如此。台湾地区天然砂进口量的90%以上来自大陆,而台湾芯片占台湾2021年出口额的34.8%。网友称商务部暂停天然砂对台湾地区出口是捏到了台湾半导体制造业的七寸。
  • 波兰网友拆德国产电源插排,内部竟是中国制造?! 本文将会介绍LogiLink LPS262U电源插排(接线板)——包含三个USB端口和两个Schuko插座——的内部结构及其简短测试。
  • 华盛顿大学首创用人体热能为可穿戴电子设备供电 从健康和健身追踪器到虚拟现实设备,可穿戴电子产品已成为我们日常生活的一部分,但找到持续为这些设备供电的方法是一项挑战。华盛顿大学的研究人员开发了一种创新的解决方案:首创的柔性、可穿戴热电设备,可将体热转化为电能。
  • 深圳允许完全自动驾驶车辆上路,主驾无需坐人 据EDN电子技术设计引援央视财经报道,从8月1日开始,《深圳经济特区智能网联汽车管理条例》正式实施,智能网联汽车列入国家汽车产品目录或者深圳市智能网联汽车产品目录,这也让深圳成为了国内首个允许L3级别自动驾驶车辆合法上路的城市。
  • 理想ONE高速起火烧成光架,其1.2T三缸增程器曾被指隐藏 近期,网络平台上发布了一段理想ONE在行驶过程中,车辆出现起火的视频内容。现场拍摄的灭火后图片显示,该轿车过火后仅剩骨架,车辆前部增程器位置受损严重,车辆尾门已经在过火后从车身主体脱落。此前,曾有国内汽车媒体对一台行驶了10万公里的理想ONE的东安1.2T三缸增程发动机进行拆解,被指隐藏暗病。
  • 仿真器智能,工程师更聪明! 不要过度依赖SPICE仿真器的自动设定,因为过度相信自动化有时可能引发错误。请记得:仿真器智能,工程师更聪明!
  • 上海微系统所使用石墨烯纳米带研制出世界上最小尺寸的 非易失性相变随机存取存储器(PCRAM)被认为是大数据时代新兴海量存储的有希望的候选者之一。然而,相对较高的编程能量阻碍了 PCRAM 中功耗的进一步降低。利用石墨烯的窄边接触可以有效降低每个电池中相变材料的活性体积,从而实现低功耗运行。
  • 可解决工业自动化和IIoT挑战的MCU 工业自动化和工业物联网(IIoT)设计人员的性能要求不断变化。就MCU而言,他们希望获得更快的处理速度、更多的内存、更好的连接性和更多的安全功能。
  • 我国建成开通5G基站数达185.4万个 工信部近日透露,截至2022年6月底,中国5G基站数达到185.4万个,其中二季度新增基站近30万个,已建成全球规模最大、技术领先的网络基础设施,实现“县县通5G、村村通宽带”。。
  • Nothing Phone 1 官方承认品控缺陷,但拆解后有新发现 前一加手机联合创始人裴宇创立的 Nothing 公司在国外备受关注,但Nothing Phone 1发布之后却被网友爆料大量翻车现场。目前官方也已承认了Nothing Phone 1 在前摄开孔位置附近出现了坏点或绿晕的问题。但Nothing Phone 1也并非一无是处,著名的 JerryRigEverything 耐用性测试就称其“超级坚固”。
  • 苹果发布2022财年第三财季业绩,营收829.59亿美元 Apple 今日公布了 2022 年第三财季的财务业绩。报告显示,苹果公司第三财季公布收入为 829.59亿美元,去年同期为 814 亿美元,同比增长2%;季度净利润为 194 .4亿美元,去年同期为217 亿美元,同比下降10.6%;其中,iPhone带来的营收406.7亿美元,同比增长3%。
  • 工程师开发出可以看到身体内部的贴纸 麻省理工学院的工程师设计了一种贴片,可以产生身体的超声图像。这种邮票大小的设备贴在皮肤上,可以提供 48 小时内脏器官的连续超声成像。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了