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

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

3天内不再提示

FPGA和GPU之间的类比

电子设计 来源:电子设计 作者:电子设计 2020-10-30 12:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

FPGA 是一堆晶体管,你可以把它们连接(wire up)起来做出任何你想要的电路。它就像一个纳米级面包板。使用 FPGA 就像芯片流片,但是你只需要买这一张芯片就可以搭建不一样的设计,作为交换,你需要付出一些效率上的代价。

从字面上讲这种说法并不对,因为你并不需要重连(rewire)FPGA,它实际上是一个通过路由网络(routing network)连接的查找表 2D 网格,以及一些算术单元和内存。FPGA 可以模拟任意电路,但它们实际上只是在模仿,就像软件电路仿真器模拟电路一样。这个答案不恰当的地方在于,它过分简化了人们实际使用 FPGA 的方式。接下来的两个定义能更好地描述 FPGA。

电路模拟是 FPGA 的经典主流用例,这也是 FPGA 最早出现的原因。FPGA 的关键在于硬件设计是用 HDL 形式编码的,而且买一些便宜的硬件就可以得到和 ASIC 相同的效果。当然,你不可能在 FPGA 和真正的芯片上使用完全相同的 Verilog 代码,但至少它们的抽象范围是一样的。

这是与 ASIC 原型设计不同的一个用例。和电路仿真不同,计算加速是 FPGA 的新兴用例。这也是微软最近成功加速搜索和深度神经网络的原因。而且关键的是,计算实例并不依赖于 FPGA 和真正 ASIC 之间的关系:开发人员针对基于 FPGA 的加速编写的 Verilog 代码不需要与用来流片的 Verilog 代码有任何的相似性。

这两种实例在编程、编译器和抽象方面存在巨大差异。我比较关注后者,我将其称为「计算 FPGA 编程」(computaTIonal FPGA programming)。我的论点是,目前计算 FPGA 的编程方法都借鉴了传统的电路仿真编程模型,这是不对的。如果你想开发 ASIC 原型的话,Verilog 和 VHDL 都是正确的选择。但如果目标是计算的话,我们可以也应该重新思考整个堆栈。

让我们开门见山地说吧。FPGA 是一类很特殊的硬件,它用来高效执行模拟电路描述的特殊软件。FPGA 配置需要一些底层软件——它是为了 ISA 编写的程序。


这里可以用 GPU 做类比。

深度学习区块链盛行之前,有一段时间 GPU 是用来处理图形的。在 21 世纪初,人们意识到他们在处理没有图形数据的计算密集型任务时,也会大量使用 GPU 作为加速器:GPU 设计师们已经构建了更通用的机器,3D 渲染只是其中一个应用而已。

FPGA 的定义以及和 GPU 的类比

计算 FPGA 遵循了相同的轨迹。我们的想法是要多多使用这一时兴的硬件,当然不是为了电路仿真,而是利用适合电路执行的计算模式,用类比的形式来看 GPU 和 FPGA。

为了让 GPU 发展成今天的数据并行加速器,人们不得不重新定义 GPU 输入的概念。我们过去常常认为 GPU 接受奇特的、强烈的、特定领域的视觉效果描述。我们实现了 GPU 执行程序,从而解锁了它们真正的潜力。这样的实现让 GPU 的目标从单个应用域发展为整个计算域。

我认为计算 FPGA 正处于类似的转变中,现在还没有针对 FPGA 擅长的基本计算模式的简洁描述。但它和潜在的不规则并行性、数据重用以及大多数静态的数据流有关。

和 GPU 一样,FPGA 也需要能够体现这种计算模式的硬件抽象,Verilog 用于计算 FPGA 的问题在于它在低级硬件抽象中效果不好,在高级编程抽象中的效果也不好。让我们通过反证法想象一下,如果用 RTL(寄存器传输级)取代这些角色会是什么样。

甚至 RTL 专家可能也无法相信 Verilog 是可以高效开发主流 FPGA 的方式。它不会把编程逻辑推向主流。对于经验丰富的硬件黑客来说,RTL 设计似乎是友好而熟悉的,但它与软件语言之间的生产力差距是不可估量的。

事实上,对现在的计算 FPGA 来说,Verilog 实际上就是 ISA。主要的 FPGA 供应商工具链会将 Verilog 作为输入,而高级语言的编译器则将 Verilog 作为输出。供应商一般会对比特流格式保密,因此 Verilog 在抽象层次结构中会处于尽可能低的位置。

把 Verilog 当做 ISA 的问题是它和硬件之间的距离太远了。RTL 和 FPGA 硬件之间的抽象差距是巨大的,从传统角度讲它至少要包含合成、技术映射以及布局布线——每一个都是复杂而缓慢的过程。因此,FPGA 上 RTL 编程的编译 / 编辑 / 运行周期需要数小时或数天,更糟糕的是,这是一个无法预测的过程,工具链的深层堆栈可能会掩盖 RTL 中的改变,这可能会影响设计性能和能源特性。

好的 ISA 应该直接展示底层硬件未经修饰的真实情况。像汇编语言一样,它其实不需要很方便编程。但也像汇编语言一样,它的编译速度需要非常快,而且结果可预测。如果想要构建更高级的抽象和编译器,就需要一个不会出现意外的低级目标。而 RTL 不是这样的目标。

如果计算 FPGA 是特定类算法模式的加速器,那当前的 FPGA 并不能理想地实现这一目标。在这个游戏规则下能够击败 FPGA 的新硬件类型,才可能带来全新的抽象层次结构。新的软件栈应该摒弃 FPGA 在电路仿真方面的遗留问题,以及 RTL 抽象。

审核编辑 黄昊宇

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

    关注

    1656

    文章

    22293

    浏览量

    630436
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5101

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    DSP、FPGA之间SRIO通信的问题?

    目前在使用DSP和FPGA之间通过SRIO的SWRITE事务完成双向数据通信,大多数情况下都正常,但是在我不停的给DSP进行烧写程序时,会偶尔出错,FPGA无法收到DSP下发的数据。偶尔故障情况下buf_lcl_phy_buf_
    发表于 11-15 16:22

    类比半导体的模拟前端AFE型号有哪些

    类比半导体的低功耗模拟前端afe芯片LB2032BQFP48是一款高度集成的低功耗模拟监控解决方案,包括三十二个12位数模转换器(DAC)、六个或五个灵活的引脚,可配置为输入到12位模数转换器(ADC)或作为GPIO、内部参考和本地温度传感器通道。
    的头像 发表于 10-31 13:51 129次阅读

    FPGAGPU加速的视觉SLAM系统中特征检测器研究

    (Nvidia Jetson Orin与AMD Versal)上最佳GPU加速方案(FAST、Harris、SuperPoint)与对应FPGA加速方案的性能,得出全新结论。
    的头像 发表于 10-31 09:30 309次阅读
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>GPU</b>加速的视觉SLAM系统中特征检测器研究

    类比半导体高速模数转换器的作用

    类比半导体的模拟数字转换器常被用于汽车电池管理系统(BMS)应用,作为汽车级单通道同步24位高精度ADC,它具有宽动态范围、低功耗和缓冲模拟输入等特性。英尚微作为类比半导体的授权代理商,经营类比半导体各个型号的高精度、低功耗数模
    的头像 发表于 10-28 15:17 245次阅读

    ADC和FPGA之间LVDS接口设计需要考虑的因素

    本文描述了ADC和FPGA之间LVDS接口设计需要考虑的因素,包括LVDS数据标准、LVDS接口数据时序违例解决方法以及硬件设计要点。
    的头像 发表于 07-29 10:01 5036次阅读
    ADC和<b class='flag-5'>FPGA</b><b class='flag-5'>之间</b>LVDS接口设计需要考虑的因素

    aicube的n卡gpu索引该如何添加?

    请问有人知道aicube怎样才能读取n卡的gpu索引呢,我已经安装了cuda和cudnn,在全局的py里添加了torch,能够调用gpu,当还是只能看到默认的gpu0,显示不了gpu1
    发表于 07-25 08:18

    类比半导体推出全新第二代高边开关芯片HD80012

    致力于提供高品质汽车驱动芯片和高品质工业模拟芯片供应商上海类比半导体技术有限公司(下称“类比半导体”或“类比”)宣布推出全新第二代高边开关芯片HD80012,单通道低内阻1.2mΩ产品。
    的头像 发表于 07-02 15:19 1060次阅读
    <b class='flag-5'>类比</b>半导体推出全新第二代高边开关芯片HD80012

    类比半导体推出全新第二代高边开关芯片HD8004

    致力于提供高品质汽车驱动芯片和高品质工业模拟芯片供应商上海类比半导体技术有限公司(下称“类比半导体”或“类比”)宣布推出全新第二代高边开关芯片HD8004,单通道低内阻4.3mΩ产品。
    的头像 发表于 05-21 18:04 1104次阅读
    <b class='flag-5'>类比</b>半导体推出全新第二代高边开关芯片HD8004

    可以手动构建imx-gpu-viv吗?

    使用 imx-gpu-viv-6.4.3.p4.2.aarch64.bin。 https://www.nxp.com/lgfiles/NMG/MAD/YOCTO//imx-gpu-viv-6.4.3.p4.2-aarch64.bin 我需要
    发表于 03-28 06:35

    OpenVINO™检测到GPU,但网络无法加载到GPU插件,为什么?

    OpenVINO™安装在旧的 Windows 10 版本 Windows® 10 (RS1) 上。 已安装 GPU 驱动程序版本 25.20.100.6373,检测到 GPU,但网络无法加载
    发表于 03-05 06:01

    fpga和cpu的区别 芯片是gpu还是CPU

    一、FPGA与CPU的区别 FPGA(Field-Programmable Gate Array,现场可编程门阵列)和CPU(Central Processing Unit,中央处理器)是两种不同类
    的头像 发表于 02-01 14:57 3038次阅读

    FPGA+GPU+CPU国产化人工智能平台

    平台采用国产化FPGA+GPU+CPU构建嵌入式多核异构智算终端,可形成FPGA+GPUFPGA+CPU、CPU+FPGA等组合模式,形成低功耗、高可扩展性的硬件系统,结合使用场景灵
    的头像 发表于 01-07 16:42 1760次阅读
    <b class='flag-5'>FPGA+GPU</b>+CPU国产化人工智能平台

    ASIC和GPU的原理和优势

    芯片”。 准确来说,除了它俩,计算芯片还包括大家更熟悉的CPU,以及FPGA。 行业里,通常会把半导体芯片分为数字芯片和模拟芯片。其中,数字芯片的市场规模占比较大,达到70%左右。 数字芯片,还可以进一步细分,分为:逻辑芯片、存储芯片以及微控制单元(MCU)。CPU、GPU
    的头像 发表于 01-06 13:58 3101次阅读
    ASIC和<b class='flag-5'>GPU</b>的原理和优势

    《CST Studio Suite 2024 GPU加速计算指南》

    GPU Computing Guide》是由Dassault Systèmes Deutschland GmbH发布的有关CST Studio Suite 2024的GPU计算指南。涵盖GPU计算
    发表于 12-16 14:25