首页> 行业资讯> FPGA会取代CPU吗?一篇文章揭示了FPGA的现状和未来

FPGA会取代CPU吗?一篇文章揭示了FPGA的现状和未来

来源: 2019/9/26 浏览量:148 关键词: fpga cpu 半导体现状 电子采购平台

FPGA会取代CPU吗?一篇文章揭示了FPGA的现状和未来

 

为什么FPGA快速? “这对同行都是好事。”

CPU和GPU都属于von Neumann结构,并且该指令对执行和共享内存进行解码。 FPGA比CPU甚至GPU都更节能,这实质上是没有指令且没有共享内存的架构的优势。

 

在Feng的结构中,由于执行单元(例如CPU内核)可以执行任意指令,因此需要指令存储器,解码器,各种指令的算术单元以及分支跳转处理逻辑。由于指令流的控制逻辑很复杂,因此不可能有太多独立的指令流。因此,GPU使用SIMD(单指令流多个数据流)来允许多个执行单元以相同的速度处理不同的数据。 CPU还支持SIMD。指令。

fpga芯片

 

FPGA的每个逻辑单元的功能在重新编程(编程)时确定,不需要任何指令。

 

在冯氏结构中使用记忆具有两个功能。一种是保存状态,另一种是在执行单元之间进行通信。

 

由于内存是共享的,因此需要进行访问仲裁。为了利用访问局部性,每个执行单元都有一个专用高速缓存,该高速缓存保持部分间高速缓存的一致性。

 

由于需要保存状态,FPGA中的寄存器和片上存储器(BRAM)属于其各自的控制逻辑,因此无需进行不必要的仲裁和缓存。

 

为了满足通信需要,在重新编程(编程)时确定FPGA的每个逻辑单元与周围逻辑单元的连接,并且不需要通过共享存储器进行通信。

 

如此高的3,000英尺高度,FPGA的实际性能是什么?我们分别关注计算密集型任务和通信密集型任务。

深圳市联诠电子科技有限公司

计算密集型任务的示例包括矩阵运算,图像处理,机器学习,压缩,非对称加密和Bing搜索排序。这类任务通常由CPU将任务卸载到FPGA来执行。对于这种类型的任务,我们目前正在使用Altera(它似乎叫做Intel,我仍然习惯称其为Altera ...)Stratix V FPGA的整数乘法性能基本上相当于20核CPU的浮点乘法性能。和8核CPU大致相当,并且比GPU低一个数量级。我们将使用的下一代FPGA Stratix 10将配备更多的乘法器和硬件浮点组件,理论上可以实现与当今顶级GPU计算卡相同的计算能力。

   

在数据中心,FPGA优于GPU的核心优势是延迟。

 

对于Bing搜索排序之类的任务,要尽快返回搜索结果,您需要将每个步骤的延迟减至最小。

 

如果使用GPU进行加速,以充分利用GPU的计算能力,则批处理的大小不能太小,并且延迟将在毫秒级。

深圳市联诠电子科技有限公司

使用FPGA加速,仅需要几微秒的PCIe延迟(我们当前的FPGA是PCIe加速器)。

 

将来,在英特尔推出通过QPI连接的Xeon + FPGA之后,CPU和FPGA之间的延迟可以减少到不到100纳秒,这与访问主存储器没有什么不同。

 

 

为什么FPGA的延迟要比GPU小得多?

 

这本质上是架构上的差异。

 

FPGA具有流水线并行性和数据并行性,而GPU几乎只有数据并行性(流水线深度有限)。

 

例如,如果有10个步骤来处理数据包,则FPGA可以构建10级流水线。流水线的不同阶段处理不同的数据包,每个数据包通过10个级别进行处理。一旦为每个进程处理了一个数据包,就可以立即将其输出。

 

GPU的数据并行方法是执行10个计算单元,每个计算单元还处理不同的数据包。但是,所有计算单元必须执行相同的操作(SIMD,单指令多数据)。这要求将10个数据包一起输入并一起输出,并且增加了输入和输出延迟。

 

当任务是零碎而不是分批到达时,管线并行可以实现比数据并行更低的延迟。因此,对于流计算任务而言,FPGA具有优于GPU的固有优势。

计算密集型任务,CPU,GPU,FPGA,ASIC的数量级比较(以16位整数乘法为例,数字仅为数量级)

深圳市联诠电子科技有限公司

 

 

专用于ASIC的芯片在吞吐量,延迟和功耗方面无可厚非,但Microsoft并未采用它的原因有两个:

 

接下来,查看通信密集型任务。

 

与计算密集型任务相比,通信密集型任务处理每个输入数据并不复杂,基本上可以简单地进行计算和输出。这时,沟通经常成为瓶颈。对称加密,防火墙和网络虚拟化都是通信密集型示例。

 

通信密集型任务,CPU,GPU,FPGA,ASIC的数量级比较(以64字节网络数据包处理为例,数量仅为数量级)

 

对于通信密集型任务,FPGA比CPU和GPU具有更大的优势。

 

就吞吐量而言,FPGA上的收发器可以直接连接到40 Gbps甚至100 Gbps网络电缆,以线速处理任何大小的数据包; CPU需要从网卡接收数据包以进行处理。许多网卡无法对64字节的小数据包进行线速处理。尽管可以通过插入多个NIC来实现高性能,但是CPU和主板支持的PCIe插槽数量通常受到限制,并且NIC和交换机本身很昂贵。

 

在延迟方面,网卡从CPU接收数据包,然后CPU将其发送到网卡。即使使用诸如DPDK之类的高性能数据包处理框架,延迟也为4〜5微秒。更为严重的问题是通用CPU的延迟不够稳定。例如,当负载很高时,转发延迟可能会上升到几十微秒甚至更高(如下图所示);现代操作系统中的时钟中断和任务调度也增加了延迟的不确定性。

 

ClickNP(FPGA)比较Dell S6000交换机(商业交换芯片),Click + DPDK(CPU)和Linux(CPU)的转发延迟,误差线分别为5%和95%。

 

尽管GPU也可以高性能地处理数据包,但是GPU没有网络端口,这意味着数据包需要首先由网卡收集,然后再处理GPU。此吞吐量受CPU和/或网卡的限制。更不用说GPU本身的延迟。

 

那么为什么不将这些网络功能放入网卡或使用可编程交换机呢? ASIC的灵活性仍然很尴尬。

 

尽管功能越来越强大的可编程开关芯片(例如支持P4语言的Tofino),但ASIC仍无法执行复杂的状态处理,例如自定义加密算法。

 

总而言之,FPGA在数据中心的主要优势是稳定且延迟极低,适用于流计算密集型任务和通信密集型任务。

 

 

 

二,微软部署FPGA的做法

 

2016年9月,《连线》杂志发表了一份关于Microsoft下注FPGA的报告[3],其中描述了Catapult项目的过去和现在。

 

然后,Catapult项目的负责人Doug Burger在Microsoft Ignite 2016会议上与微软首席执行官Satya Nadella合作,展示了FPGA加速的机器翻译。

 

该演示的总计算能力为103万Ops,即1.03 Exa-op,相当于100,000个顶级GPU卡。 FPGA(加上板载内存和网络接口等)功耗约为30瓦,仅增加了整个服务器功率的十分之一。

 

专业的电子元器件分销商,电子元器件采购平台-深圳市联诠电子科技有限公司

下一篇:

[存储器]紫光成都存储器制造基地项目加速