您的位置 首页 方案

FPGA的界说以及和GPU的类比

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

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 笼统。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/339510.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部