Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >为什么FPGA主频比CPU慢,却可以帮其加速?

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

作者头像
FPGA技术江湖
修改于 2021-04-14 06:16:17
修改于 2021-04-14 06:16:17
1.7K0
举报
文章被收录于专栏:FPGA技术江湖FPGA技术江湖

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

我们知道,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。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
为什么FPGA主频比CPU慢,但却可以用来帮CPU加速?
我们知道,FPGA的频率一般只有几百MHz,而CPU的频率却高达数GHz。那么,有不少网友心中就有一个疑问:“为什么FPGA主频比CPU慢,但却可以用来帮CPU做加速?”。 今天,EDN就和大家系统
碎碎思
2021/04/02
1.7K0
深入理解 CPU 和异构计算芯片 GPU/FPGA/ASIC (下)
本文介绍了FPGA在深度学习中的重要性,以及各大公司如Google、Facebook、百度等是如何利用FPGA来提升其业务效率和性能的。具体包括:Google使用FPGA加速深度学习模型,Facebook在数据中心引入FPGA,以及百度大脑利用FPGA进行深度学习模型加速。
王玉伟
2017/03/23
21.2K3
深入理解 CPU 和异构计算芯片 GPU/FPGA/ASIC (下)
FPGA异构计算芯片的特点
作者介绍:架构平台部四级专家,先后从事通讯设备的开发和存储设备的研发工作。目前致力于一体化的设计-硬件和软件的结合,以及OS多个层面综合考虑系统设计,找出最优路径的设计思想。 FPGA异构计算芯片的特点 1 异构计算:WHY 明明CPU用的好好的,为什么我们要考虑异构计算芯片呢? 随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已远远超出了传统CPU处理器的能力所及。历史上
腾讯技术工程官方号
2018/01/29
4.3K1
FPGA异构计算芯片的特点
到底什么是ASIC和FPGA?
上一篇文章(链接),小枣君给大家介绍了CPU和GPU。今天,我继续介绍计算芯片领域的另外两位主角——ASIC和FPGA。
鲜枣课堂
2024/01/10
6850
到底什么是ASIC和FPGA?
FPGA异构计算在图片处理上的应用以及HEVC算法原理介绍
作者介绍:chaningwang,2008年毕业于中国科学院研究生院,主攻FPGA高性能计算、FPGA图像处理等方向。 先后在华为、怡化公司从事FPGA开发、智能传感器数据处理等相关工作,工作期间设计开发了多款传感器以及传感器数据处理平台,成功应用于银行ATM机器纸币鉴伪。 2013年加入腾讯TEG\平台开发中心\基础研发组,一直致力于图像处理算法的FPGA加速工作,先后参与了基于硬件FPGA的JPEG编解码、WEBP编码、自适应量化、HEVC编码等项目。目前在基础研发组负责图片HEVC编码项目的
腾讯技术工程官方号
2018/01/29
1.9K0
FPGA异构计算在图片处理上的应用以及HEVC算法原理介绍
同态加密算力开销如何弥补?港科大等提出基于FPGA实现的同态加密算法硬件加速方案
在各行各业,不难想象这样的场景,A 公司拥有大量数据,然而其并没有人力或计算能力对这些数据进行分析处理,因此,A 公司希望购买 B 公司的计算服务对数据进行处理,但是,A 公司不希望 B 公司获取这些数据的具体信息,因此,如果可以将数据进行加密,再传递给 B 公司进行处理,则可以满足 A 公司的所有需求。因此,在这样的场景下,我们需要一套加密体系,对密文执行的一些运算操作,可以等效为对明文执行的运算。
机器之心
2021/08/06
1.5K0
认识多种处理芯片的特性和实战(上篇)
作者介绍:高剑林,腾讯架构平台部,平台开发中心基础研发组组长。先后从事过通讯设备的开发和存储设备的研发工作。目前致力于一体化的涉及—从硬件和软件的结合,以及OS多个层面综合考虑系统设计,找出最优路径
高剑林
2017/03/21
3.3K1
认识多种处理芯片的特性和实战(上篇)
最强RISC-V服务器芯片发布:4nm,192核,性能超越AMD Epyc 9754!
11月9日消息,RISC-V服务器芯片设计厂商Ventana Micro Systems在2023 RISC-V峰会上发布了其第二代服务器CPU——Veyron V2,在指令扩展、内核设计、互联标准、制程工艺等众多方面进行了全面升级,官方宣称其性能超越了AMD的高端服务器芯片Epyc 9754,堪称最强RISC-V服务器CPU!同时,Ventana还能够让客户将定制加速器添加到定制片上系统 (SoC) 蓝图中。
芯智讯
2023/11/09
2.2K0
最强RISC-V服务器芯片发布:4nm,192核,性能超越AMD Epyc 9754!
2004年:当CPU温和地走入那个良夜
提起1994年,你会想起那时在世界电影史上都大放异彩的一年的,那一年国外影坛神仙打架,《阿甘正传》、《肖申克的救赎》、《这个杀手不太冷》等等横空出世,中国也有《重庆森林》、《活着》这样的佳作。
果冻虾仁
2021/12/13
6980
计算机基本组成
计算机的所有“计算”都是由CPU来进行的。自然,CPU也是整台计算机造价最昂贵的部分之一。
Dlimeng
2023/06/30
2540
计算机基本组成
CPU流水线越大越好吗?
流水线技术是提升性能的银弹吗?它通过把一条指令的操作切分成更细的多步,可避免CPU“浪费”。每个细分的流水线步骤都很简单,单个时钟周期时间就可设得更短,变相让CPU主频提升很快。
JavaEdge
2023/01/15
1.3K0
FPGA加速:面向数据中心和云服务的探索和实践
为了进一步加速云计算的创新发展、建立云计算信任体系、规范云计算行业、促进市场发展、提升产业技术和服务水平,由中国信息通信研究院、中国通信标准化协会主办的“2018可信云大会”于2018年8月14日-8月15日在北京国际会议中心召开。
腾讯云开发者社区
2018/08/17
1.2K0
FPGA加速:面向数据中心和云服务的探索和实践
【深度】基于论文,对谷歌 TPU 的最全分析和专业评价
【新智元导读】本文以 Google 最新公开的 TPU 论文《在数据中心中对张量处理器进行性能分析》的译本为基础,对该论文及 TPU 进行了评价。 源起 2017年度的国际计算机体系结构年会(ISAC-2017)尚在投稿阶段时,类似“Google将公布其张量处理器的细节”的小道消息就在不停发酵。几天前,即2017年4月6日,Google在自家网站上公开了论文初稿,让大众可以在会议之前提前了解其中细节。由此Google、TPU和NN加速又再次成为热门话题。 由于相关公开资料足够丰富,足以替代类似神经网络硬
新智元
2018/03/27
2.8K0
【深度】基于论文,对谷歌 TPU 的最全分析和专业评价
10G 以太网接口的FPGA实现,你需要的都在这里了
本设计中使用了Xilinx公司提供的10GEthernet PCS/PMA IP核充当连接10GMAC的PHY芯片,然后将该IP核约束到光模块上构建完整的物理层。需要说明的是本设计主要是完成以太网二层逻辑设计,不涉及PHY层的逻辑设计,如:bit同步、字节同步、字同步、64b/66b编解码等。
网络交换FPGA
2019/10/29
7K5
10G 以太网接口的FPGA实现,你需要的都在这里了
从CPU、GPU再到TPU,Google的AI芯片是如何一步步进化过来的?
按:本文作者栗向滨,中科院自动化所复杂系统国家重点实验室研究生,主攻机器人与人工智能。 Google I/O是由Google举行的网络开发者年会,讨论的焦点是用Google和开放网络技术开发网络应用。
AI科技评论
2018/03/06
1.1K0
从CPU、GPU再到TPU,Google的AI芯片是如何一步步进化过来的?
操作系统之CPU知识扫盲
CPU的英文全称是(Central Processing Unit),中文意思翻译中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。
我是攻城师
2019/01/02
1K0
西安交大获得DAC19系统设计竞赛FPGA赛道亚军,这里是他们的设计方案
2019 年 6 月 5 日,由自动化设计顶级会议 Design Automation Conference(DAC'2019, CCF A 类会议)主办的第二届「低功耗目标检测系统设计挑战赛」于美国拉斯维加斯落下帷幕。该比赛由 Xilinx、大疆和英伟达赞助,针对比赛方给定的无人机视角的 12 类训练数据集(93.52K 张分辨率为 360x640 的图片,单目标标注)进行训练,在比赛方自有的 52.75K 张测试数据集上进行测试。最终检测精度 IoU (Intersection over Union) 高且能量消耗低者胜出。全球共有 58 支队伍注册了 FPGA 比赛任务,最终只有 11 支队伍提交了设计(完赛率 19%)。冠军是由 UIUC、IBM、Inspirit IoT 公司联合组队的 iSmart3(该队伍同时也是 GPU 赛道的冠军);亚军 XJTU-Tripler 来自西安交通大学人工智能与机器人研究所;季军来自 ETH Zurich 的 SystemsETHZ。
机器之心
2019/07/03
1.2K0
西安交大获得DAC19系统设计竞赛FPGA赛道亚军,这里是他们的设计方案
在 FPGA 上运行 eBPF XDP 应用
这篇文章是对 OSDI20 的 Best Paper hXDP: Efficient Software Packet Processing on FPGA NICs 的阅读笔记,感兴趣的同学可以点击阅读原文查看论文的 paper,slide 和 video。
Oilbeater
2021/10/20
1.3K0
动态 | 由 AI 芯片到目标检测板,「西安交大」是如何斩获 DAC FPGA 赛道亚军?
AI 科技评论按:2019 年 6 月 5 日,由电子自动化设计顶级会议 DAC 2019 主办的「低功耗目标检测系统设计挑战赛」于美国拉斯维加斯落下帷幕。西安交通大学人工智能与机器人研究所团队 XJTU-Tripler 凭借对算法和架构的特殊优化,最终取得准确率 IoU61.5%;能耗 9537J,帧率 50.91Hz,功率 9.248W 的优秀成绩,斩获 FPGA 赛道的亚军,同时他们也作为国内唯一一个进入前三的队伍。目前,他们已计划开源比赛相关工具,并且提供后续支持。AI 科技评论将他们所提供的设计方案及解析整理如下。
AI科技评论
2019/07/05
7970
动态 | 由 AI 芯片到目标检测板,「西安交大」是如何斩获 DAC FPGA 赛道亚军?
2017图灵奖得主:通用芯片每年仅提升3%,神经专用架构才是未来
作者:Norman P. Jouppi, Cliff Young, Nishant Patil, David Patterson
机器之心
2018/09/20
9380
2017图灵奖得主:通用芯片每年仅提升3%,神经专用架构才是未来
推荐阅读
相关推荐
为什么FPGA主频比CPU慢,但却可以用来帮CPU加速?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文