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

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

3天内不再提示

FPGA比CPU和GPU快的原因

5RJg_mcuworld 来源:未知 作者:胡薇 2018-04-02 17:52 次阅读

CPUGPU都属于冯·诺依曼结构,指令译码执行,共享内存。FPGA之所以比CPU、GPU更快,本质上是因为其无指令,无共享内存的体系结构所决定的。

冯氏结构中,由于执行单元可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。而FPGA的每个逻辑单元的功能在重编程时就已经确定,不需要指令。

冯氏结构中使用内存有两种作用:①保存状态。②执行单元间的通信

1)保存状态:FPGA中的寄存器和片上内存(BRAM)是属于各自的控制逻辑的,无需不必要的仲裁和缓存。

2)通信需求:FPGA每个逻辑单元与周围逻辑单元的连接在重编程时就已经确定了,并不需要通过共享内存来通信。

计算密集型任务中:

在数据中心,FPGA相比GPU的核心优势在于延迟。FPGA为什么比GPU的延迟低很多?本质上是体系结构的区别。FPGA同时拥有流水线并行和数据并行,而GPU几乎只有数据并行(流水线深度受限)。

处理一个数据包有10个步骤,FPGA可以搭建一个10级流水线,流水线的不同级在处理不同的数据包,每个数据包流经10级之后处理完成。每个处理完成的数据包可以马上输出。而GPU的数据并行方法是做10个计算单元,每个计算单元也在处理不同的数据包,但是所有的计算单元必须按照统一的步调,做相同的事情(SIMD)。这就要求10个数据包必须同进同出。当任务是逐个而非成批到达的时候,流水线并行比数据并行可实现更低的延迟。因此对流水式计算的任务,FPGA比GPU天生有延迟方面的优势。

ASIC在吞吐量、延迟、功耗单个方面都是最优秀的。但是其研发成本高,周期长。FPGA的灵活性可以保护资产。数据中心是租给不同租户使用的。有的机器上有神经网络加速卡,有的有bing搜索加速卡,有的有网络虚拟加速卡,任务的调度和运维会很麻烦。使用FPGA可以保持数据中心的同构性。

通信密集型任务中,FPGA相比GPU、CPU的优势更大。

①吞吐量:FPGA可以直接接上40Gbps或者100Gbps的网线,以线速处理任意大小的数据包;而CPU则需要网卡把数据包接收过来;GPU也可以高性能处理数据包,但GPU没有网口,同样需要网卡,这样吞吐量受到网卡和(或)者CPU的限制。

②延迟:网卡把数据传给CPU,CPU处理后传给网卡,再加上系统中的时钟中断和任务调度增加了延迟的不稳定性。

综上所述,在数据中心里 FPGA 的主要优势是稳定又极低的延迟,适用于流式的计算密集型任务和通信密集型任务。

FPGA 和 GPU 最大的区别在于体系结构,FPGA 更适合做需要低延迟的流式处理,GPU 更适合做大批量同构数据的处理。

成也萧何,败也萧何。缺少指令同时是 FPGA 的优势和软肋。每做一点不同的事情,就要占用一定的 FPGA 逻辑资源。如果要做的事情复杂、重复性不强,就会占用大量的逻辑资源,其中的大部分处于闲置状态。这时就不如用冯·诺依曼结构的处理器

FPGA 和 CPU 协同工作,局部性和重复性强的归 FPGA,复杂的归 CPU。

更多关于FPGA的精彩阅读:

一文看懂fpga和plc的区别

FPGA如何从入门到高手?

中国的FPGA处于什么水准?发展前景分析

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

    关注

    1629

    文章

    21729

    浏览量

    602998
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10854

    浏览量

    211583
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4729

    浏览量

    128890

原文标题:FPGA为什么比CPU和GPU快

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGACPUGPU的原理是什么

    本文首先阐述了FPGA的原理了,其次分析了FPGACPUGPU的原理,最后阐述了
    的头像 发表于 05-31 09:00 1.7w次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>比</b><b class='flag-5'>CPU</b>和<b class='flag-5'>GPU</b><b class='flag-5'>快</b>的原理是什么

    FPGA真的能取代CPUGPU吗?

    最近我们看到一篇文章,说FPGA可能会取代CPUGPU成为将来机器人研发领域的主要芯片。文章列举了很多表格和实验数据,证明了在很多领域FPGA的性能会极大优于
    发表于 05-16 10:39 1.7w次阅读

    相比CPUGPU、ASIC,FPGA有什么优势

    CPUGPU 都属于冯·诺依曼结构,指令译码执行、共享内存。FPGA 之所以 CPU 甚至 GPU
    发表于 11-22 16:00 1595次阅读

    251.GPUCPU强么?

    gpucpu/soc
    小凡
    发布于 :2022年10月04日 13:46:35

    FPGA为什么

    CPUGPU都属于冯·诺依曼结构,指令译码执行,共享内存。FPGA之所以CPUGPU更快,
    发表于 08-16 09:54

    FPGACPUGPU有什么区别?为什么越来越重要?

    训练时长的三分之一。 图10:FPGA仅用200MHz,就可以实现CPU43倍、GPU
    发表于 11-09 14:09

    FPGA为什么CPUGPU

    FPGA仿真篇-使用脚本命令来加速仿真二 基于FPGA的HDMI高清显示借口驱动 基于FPGA灰度图像高斯滤波算法的实现 FPGA为什么
    发表于 02-20 20:49 1673次阅读

    CPU 的浮点运算能力 GPU 差,为什么不提高 CPU 的浮点运算能力呢

    为什么 CPU 的浮点运算能力 GPU 差,为什么不提高 CPU 的浮点运算能力?
    的头像 发表于 03-16 15:12 1.6w次阅读

    GPU运算速度CPU原因 GPUCPU的区别

    GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分
    发表于 04-28 10:26 2.9w次阅读

    什么是ASIC芯片?与CPUGPUFPGA相比如何?

    不过在联发科副总经理暨智能设备事业群总经理游人杰看来,虽然CPUGPU等通用型芯片以及FPGA可以适应相对更多种的算法,但是特定算法下ASIC的性能和效能要更高。另外,虽然FPGA
    的头像 发表于 05-04 15:39 25.3w次阅读
    什么是ASIC芯片?与<b class='flag-5'>CPU</b>、<b class='flag-5'>GPU</b>、<b class='flag-5'>FPGA</b>相比如何?

    为什么使用FPGAFPGA为什么GPU的延迟低这么多?

    计算密集型任务的例子包括矩阵运算、图像处理、机器学习、压缩、非对称加密、Bing 搜索的排序等。这类任务一般是 CPU 把任务卸载(offload)给 FPGA 去执行。对这类任务,目前我们正在
    的头像 发表于 06-25 16:02 1.8w次阅读
    为什么使用<b class='flag-5'>FPGA</b>?<b class='flag-5'>FPGA</b>为什么<b class='flag-5'>比</b><b class='flag-5'>GPU</b>的延迟低这么多?

    万能的FPGA真的能取代CPUGPU

    FPGA相对于CPUGPU,在进行感知处理等简单重复的任务的时候的优势很明显,按照现在的趋势发展下去,FPGA或许会在未来取代机器人开发中GPU
    发表于 09-06 17:48 2355次阅读

    FPGA相比GPUCPU有什么行业竞争优势

    与其他计算载体如CPUGPU相比,FPGA具有高性能、低能耗以及可硬件编程的特点。图1介绍了FPGA的硬件架构,每个FPGA主要由叁个部分
    发表于 10-21 14:56 2705次阅读

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

    GPU、和FPGA的比较 桌面端的CPU为冯诺依曼结构,从上图可以看出,其基本组成为控制器,Cache,和ALU。而计算单元ALU在CPU中的占
    的头像 发表于 06-30 10:57 2310次阅读

    为什么GPUCPU更快?

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