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

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

3天内不再提示

全面了解FPGA

FPGA研究院 来源:FPGA研究院 2024-01-19 09:35 次阅读

全面了解FPGA

1 FPGA简介

当我们需要进行计算时,通常会选择使用基于指令的架构,比如中央处理器CPU)或图形处理器(GPU),编写适用于这些架构的软件程序。这些架构是通用的,可以执行各种不同类型的计算任务。

然而,还有一种不同的方法,即为特定的计算任务设计专门的电路,不依赖于通用架构和软件。这种方法更加费力,需要进行电路设计硬件实现,但可以在特定计算任务上获得更高的性能和效率。

本文重点介绍这种能获取高性能的方法,即使用可重构集成电路,也称为现场可编程门阵列(FPGA)。FPGA是一种特殊的芯片,可以通过配置来实现各种不同的电路功能。可以根据特定的计算需求,将FPGA配置成一个定制的电路,以执行特定的计算任务。与基于指令的架构不同,FPGA不需要编写软件程序,而是直接配置硬件电路来执行计算任务。

2 FPGA的优劣势

为什么我们倾向于使用 FPGA 进行计算,而不是更常见的CPU或GPU?与GPU和CPU相比,FPGA在以下几个方面存在差异:

延迟:计算需要多长时间?

→ FPGA在这方面表现良好。

连通性:可以连接哪些输入/输出,以及带宽是多少?

→ FPGA可以直接连接输入,并提供非常高的带宽。

工程成本:表达计算需要多少工作量?

→ 工程成本通常比基于指令的架构要高得多,因此其优势必须物有所值。

能源效率:计算需要消耗多少能源?

→ 这经常被列为FPGA的一个巨大优势,但FPGA是否比CPU或GPU更好,实际上取决于应用场景。

接下来更详细地讨论每个方面。

3 低延迟

FPGA相对于CPU和GPU具有更低的延迟。在特定的应用场景下,使用FPGA可以实现非常低的延迟。

使用FPGA,可以实现约等于或低于1微秒的延迟;而使用CPU,延迟小于50微秒已经是非常不错的表现了。此外,FPGA的延迟更加可预测,更具确定性。主要原因是FPGA更加专用化:它们不依赖于通用操作系统,并且通信无需通过通用总线(如USB或PCIe)进行。

因此,对于需要高性能和低延迟的应用场景,例如喷气式战斗机的自动驾驶仪或高频算法交易引擎,选择使用FPGA是个更好的选择,它能够提供非常短的延迟,更可靠的性能,并且能够满足特定的需求,不受通用架构和操作系统的限制。

4 连通性

在FPGA上,可以直接把任何数据源(如网络接口传感器)连接到芯片的引脚上,这点与GPU和CPU形成鲜明对比,因为在GPU和CPU上,必须通过标准化总线(如USB或PCIe)连接数据源,并依赖操作系统将数据传递给应用程序。FPGA的与芯片引脚的直接连接提供了极高的带宽和低延迟。

这种高带宽在无线电天文学应用中是必需的,比如LOFAR和SKA。在这些应用中,现场装有许多专用传感器,产生大量数据。为了更方便处理,必须在发送之前减少数据量。为此,荷兰无线电天文学研究所ASTRON设计了Uniboard²,这是一块搭载了四个FPGA的板卡,其每秒处理的数据量比阿姆斯特丹互联网交换中心还要多。

5 工程成本

在讨论能源效率这个微妙问题之前,让我们先讨论FPGA的主要缺点:相比基于指令的架构(即CPU和GPU),它们的编程/配置要困难得多。传统上,这些硬件电路是通过硬件描述语言(HDL),如VHDL和Verilog,进行描述的,而软件则是通过众多编程语言之一,如Java、C和Python进行编程的。

从理论上讲,硬件描述语言和编程语言都可以用来表达任何计算(都是图灵完备的),但在工程细节上存在巨大的差异。

一种新兴的趋势是高级综合(HLS):使用常规编程语言(如OpenCL或C++)对FPGA进行编程,从而实现更高级别的抽象。然而,即使使用这样的语言,编程FPGA的难度仍然比编程基于指令的系统高一个数量级。

编程FPGA的困难部分很大程度上是长时间的编译时间。例如,使用英特尔的OpenCL编译器,编译一个典型的FPGA程序需要4到12个小时之间。这是由于布局和布线阶段:想要的定制电路需要映射到拥有的FPGA资源上,并且路径尽可能短。这是一个复杂的优化问题,需要大量计算。英特尔提供了一个仿真器,因此测试正确性不需要进行这个漫长的步骤,但确定和优化性能确实需要进行这些漫长的编译阶段。

6 能源效率

在英特尔的宣传中,一直强调FPGA在能源效率方面具有明显的优势。然而,实际情况并不那么明确,尤其是在涉及浮点计算时。但我们首先来考虑FPGA相对于CPU或GPU在能源效率方面的明显优势。

就逻辑和固定精度计算而言,FPGA在能源效率方面表现出色。尤其在加密货币挖掘中,正是这一特性使得FPGA具有优势。实际上,过去很多人都使用FPGA进行比特币挖掘。

值得一提的是,如今大多数人都使用ASIC(专用集成电路)进行比特币挖掘。ASIC是专门为特定目的而构建的定制集成电路。虽然ASIC是更为能源高效的解决方案,但需要巨额的前期投资用于设计和批量芯片生产,才能实现成本效益。

从能源效率的角度来看,FPGA板不需要依赖主机计算机运行,因为它们具备自己的输入/输出接口,这样可以节省主机的能源和金钱开销。而与之相反的是GPU,GPU需要通过PCIe或NVLink与主机系统进行通信,因此需要主机的运行支持。(NVidia Jetson是GPU的一个例外,但它并不是高端GPU。)

7 浮点数的能效——FPGA与GPU的比较

许多高性能计算应用,如深度学习,通常依赖于浮点运算,GPU在这方面表现出色。过去,FPGA在浮点计算方面效率相对较低,因为需要从逻辑块组装浮点单元,这消耗了大量资源。

像Arria 10和Stratix 10这样的新一代FPGA在FPGA结构中集成了浮点单元,使其在浮点计算方面更为出色。那么,添加浮点单元是否使FPGA在能效上对浮点计算更有吸引力?它们比GPU更节能吗?

把最先进的GPU与最先进的FPGA进行比较。目前市面上最快的专业GPU是Tesla V100,理论最大性能为15 TFLOPS(每秒兆浮点运算,是测量浮点性能的标准单位),功耗约为250瓦。其中一款最好的FPGA开发板是Nallatech 520C,它采用Altera/Intel的新一代Statix 10芯片。该开发板的理论最大性能为9.2 TFLOPS,功耗约为225瓦。

如果把这两个设备在能效上进行比较,GPU似乎更节能,在理论上能达到56 GFLOP/W(每瓦吉浮点运算,是测量浮点性能能效的标准单位),而FPGA仅能达到40.9 GFLOP/W。因此,如果要购买新的浮点数硬件,并且需要主机电脑,那么在这种粗略的比较中,选择GPU可能更合适。

然而,这种差距很小,并且有可能新一代基于Stratix 10的FPGA开发板在浮点计算方面比Volta更节能。此外,上述比较是在不同工艺节点下进行的,因为Tesla V100采用了12纳米工艺,而Stratix 10则采用了较旧的14纳米工艺。

尽管比较表明,如果需要能效较高的浮点计算,最好选择GPU,但并不能说明GPU在浮点计算方面天生更节能。目前,GPU在浮点能效方面占据优势,但这种情况在不久的将来可能会发生改变。

FPGA的能效标签:取决于应用领域

如果不需要主机电脑,那么需要比较带有主机的高端GPU和不带主机的高端FPGA。如果使用上述比较中的相同数据,那么带有主机的GPU和不带主机的FPGA在能效上完全相同,前提是主机消耗116.7瓦(在多GPU配置中,每个GPU消耗的电量)。现代主机的功耗在50到250瓦之间,这使得FPGA更具竞争力。

在某些领域,很难绕开FPGA。在军事应用中,如导弹制导系统,FPGA由于其低延迟而被使用。在射电天文学应用中,FPGA的专用输入/输出对于处理大量数据有重要作用。在加密货币挖掘中,FPGA的定点和逻辑运算能效优势明显。

来源: 本文转载自FPGA研究院 公众号

审核编辑:汤梓红

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

    关注

    68

    文章

    18926

    浏览量

    227221
  • FPGA
    +关注

    关注

    1620

    文章

    21510

    浏览量

    598901
  • 集成电路
    +关注

    关注

    5366

    文章

    11162

    浏览量

    358368
  • gpu
    gpu
    +关注

    关注

    27

    文章

    4591

    浏览量

    128142

原文标题:对比CPU和GPU,FPGA优势、劣势、应用全解析

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ThinkPad T41拆解:带你全面了解ThinkPad

    ThinkPad T41拆解:带你全面了解ThinkPad,这个很详细哦。
    发表于 07-18 17:00 8.7w次阅读
    ThinkPad T41拆解:带你<b class='flag-5'>全面</b><b class='flag-5'>了解</b>ThinkPad

    一文全面了解linux相关知识

    今天浩道跟大家分享linux实用场景相关的实例,助你全面了解linux相关知识。
    发表于 01-29 11:09 447次阅读

    大家有全面转型使用国产FPGA的么?

    大家有全面转型使用国产FPGA的么?比如高云、紫光、安路等等
    发表于 03-06 13:43

    全面、高效的了解电子行业最新信息

      由于经济危机带来的影响,电子行业也面临着种种困难。如何拓展国际市场,如何让产品结构与贸易形势方式调整更加深入。如何快速掌握市场变化,了解行业最新行情、市场需求和同行业的相关
    发表于 06-23 10:59

    全面了解红外遥控

    本帖最后由 eehome 于 2013-1-5 10:10 编辑 全面了解红外遥控
    发表于 08-11 09:44

    全面了解红外遥控

    本帖最后由 eehome 于 2013-1-5 09:51 编辑 全面了解红外遥控
    发表于 08-19 22:57

    深入了解LabVIEW FPGA资料分享

    深入了解LabVIEW FPGA
    发表于 05-27 08:35

    CC2540的应用是否需要全面了解蓝牙协议

    现在打算用这个IC来开发一些产品,但是感觉入门挺高的,不知如何下手。请各位指导一二!用这个来开发,是否需要全面了解蓝牙协议,对于蓝牙协议,该如何处理?
    发表于 08-19 07:39

    FPGA怎么学?学习FPGA需要了解什么?

    第一步:学习了解FPGA结构,FPGA到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程。很多开发板的程序写的很烂,我也做过一段时间的开发板设计,我觉得很大程度上,开发板在
    发表于 08-20 09:48

    全面了解电脑主板

    大家知道,主板是所有电脑配件的总平台,其重要性不言而喻。而下面我们就以图解的形式带你来全面了解主板。
    发表于 08-02 06:42

    【资料】FPGA硬件基础篇--理解FPGA时钟资源:PLL

    `带你深入全面了解FPGA硬件资源PLL`
    发表于 03-30 14:43

    全面了解红外遥控.pdf

    全面了解红外遥控.pdf
    发表于 04-09 22:21 101次下载

    了解开发套件工具是如何帮助加速FPGA设计

    的。   我们将通过这一视频来了解Cyclone III LS FPGA开发套件。该套件是非常全面的开发环境,前所未有的同时实现了低功耗、高性能和设计安全性。套件基于目前发售的密度最大的低功耗
    的头像 发表于 06-20 11:28 3494次阅读

    了解FPGA的芯片内部资源:IO是什么

    虽然很多 FPGA 工程师都是写代码,但是作为硬件编程工程师,如果不熟悉 FPGA 的底层资源和架构,是很难写出高质量的代码——至少很难写出复杂逻辑的高质量代码,也很难站在系统的层面去考虑芯片的选型等问题。那熟悉 FPGA 架构
    发表于 07-16 17:53 1w次阅读
    <b class='flag-5'>了解</b><b class='flag-5'>FPGA</b>的芯片内部资源:IO是什么

    我的第一个FPGA设计教程

    本教程提供了全面的信息,将帮助您了解如何创建 Altera® FPGA 设计并在您的开发板。
    发表于 08-16 11:44 19次下载