FPGA为什么比CPU和GPU快,原因是什么?
扫描二维码
随时随地手机看文章
在这篇文章中,小编将为大家带来FPGA的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。
一、FPGA
从本质上讲,FPGA(Field-Programmable Gate Array,可编程门阵列)是一种半导体设备,由可配置的逻辑块和互连组成,可以编程实现各种数字电路。
FPGA常常与专用集成电路(ASIC)和微控制器进行比较。ASIC专门为特定任务定制,提供了优化的性能,但缺乏灵活性。另一方面,微控制器是通用设备,通常用于较简单的任务,并通过软件控制。
FPGA的优势在于其在保持高性能的同时适应各种任务的能力。FPGA可以动态重新配置,非常适合需要灵活性和快速开发周期的应用。
FPGA主要由以下部分组成:
1、逻辑块
逻辑块是FPGA的基本构建块,包含可编程逻辑元素,可以配置为执行各种数字功能,如与、或和异或门。这些逻辑块可以通过编程来定义其功能和连接方式,从而实现所需的数字电路。
逻辑块的可编程性是FPGA的特点之一,这使FPGA具备了高度的灵活性和可定制性。
2、互连
互连是将逻辑块连接在一起的"线路"。它们构成可编程的路由矩阵,允许不同的逻辑块之间进行灵活的连接,并最终定义FPGA的功能。
3、输入/输出块
输入/输出(I/O)块使FPGA能够与外部设备(如传感器、开关或其他集成电路)进行通信。它们可配置以支持各种电压级别、标准和协议。
4、配置存储器
配置存储器存储定义FPGA的逻辑块和互连如何配置的编程数据。当FPGA上电时,这些数据被加载到设备中,使其能够执行其预定功能。
CPU和GPU都属于冯·诺依曼结构,指令译码执行,共享内存。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的内容,希望大家能够喜欢,想了解更多有关它的信息或者其它内容,请关注我们网站哦。