fpga培训
蒙#博 本科 IC前端设计工程师 深圳##半导体有限公司
20K
郭# 本科 芯片设计工程师 北京##信息科技有限公司
18.3K
于#聪 本科 FPGA工程师 上海####管理有限公司
18K
fpga培训
fpga400-668-3172转2
首页 行业前景 项目展示 就业服务 FPGA证书 产教融合 关于我们

【技术详解】FPGA在云计算行业中的应用

发布时间:2023-03-24 16:32:58

近几年,FPGA这个名词越来越多地出现在我们身边。但对于大多数人来说,FPGA依然是神秘而陌生的。让我们结合其在云计算行业中的应用,简单介绍一下。


Q:什么是FPGA?

A:通俗来讲,它是一种芯片,和我们熟知的CPU、GPU、ASIC芯片一样,有其自己的应用场景。FPGA(Field Programmable Gate Array)中文名现场可编程逻辑门阵列,是可编程器件,与传统逻辑电路和门阵列(如PAL、GAL及CPLD器件)相比,FPGA具有不同的结构,允许无限次的编程。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。

 

FPGA的优势

 

近几年人工智能、大数据各种web服务的规模在指数级的增长,而通用处理器(CPU)的摩尔定律的性能的提升遇到瓶颈。人们通过使用定制硬件来加速常见的计算任务,然而日新月异的行业又要求这些定制的硬件可被重新编程来执行新类型的计算任务。FPGA的可编程属性进入人们的视野。
 

通常,计算密集型任务,如:矩阵运算、图像处理、机器学习、压缩、非对称加密、搜索引擎的排序等。这类任务一般是CPU把任务卸载(offload)给FPGA去执行。对这类任务,目前我们正在用的Intel® Stratix® V FPGA的整数乘法运算性能与20核的CPU基本相当,浮点乘法运算性能与8核的CPU基本相当。Intel® Stratix® 10 FPGA,配备更多的乘法器和硬件浮点运算部件,理论上可达到与现在的顶级CPU旗鼓相当的计算能力。

 

在云计算数据中心,FPGA相比与CPU和GPU的核心优势在于延迟更低。各芯片的延迟对比,如下图:

 

 

对通信密集型任务,FPGA相比CPU、GPU 的优势就更大了。从吞吐量上讲,FPGA上的收发器可以直接接上40 Gbps甚至100 Gbps的网线,限速处理任意大小的数据包;而CPU需要从网卡把数据包收上来才能处理,很多网卡是不能限速处理64字节的小数据包的。尽管可以通过插多块网卡来达到高性能,但CPU和主板支持的PCIe插槽数量往往有限,而且网卡、交换机本身也价格不菲。

 

从延迟上讲,网卡把数据包收到CPU,CPU再发给网卡,即使使用DPDK这样高性能的数据包处理框架,延迟也有4-5微秒。更严重的问题是,通用CPU的延迟不够稳定。例如当负载较高时,转发延迟可能升到几十微秒甚至更高,操作系统中的时钟中断和任务调度也增加了延迟的不确定性。

 

FPGA在云计算的应用

云计算中心部署FPGA大致有三种场景:


1.专用集群场景

FPGA服务器作为专用服务器里面插满了FPGA加速卡,就像是一个FPGA组成的超级计算机。例如,某公司的实际应用一块PCIe卡上放了6块FPGA,每台1U服务器上又插了4 块PCIe卡。FPGA外观,如下图:


2.网络集群场景

为了保证数据中心中服务器的同构性,在每台服务器上插一块FPGA,FPGA之间通过专用网络连接。


3.独立节点场景

FPGA脱离服务器,作为独立的角色存在于云计算集群中。把FPGA部署在网卡和交换机之间。如下图所示,每个FPGA有一个4 GB DDR3-1333 DRAM,通过两个PCIe Gen3 x8 接口连接到一个CPU socket(物理上是PCIe Gen3 x16接口,因为FPGA没有x16的硬核,逻辑上当成两个x8的用)。物理网卡(NIC)就是普通的40 Gbps网卡,仅用于宿主机与网络之间的通信。

 

FPGA(SmartNIC)对每个虚拟机虚拟出一块网卡,虚拟机通过SR-IOV直接访问这块虚拟网卡。原本在虚拟交换机里面的数据平面功能被移到了FPGA里面,虚拟机收发网络数据包均不需要CPU参与,也不需要经过物理网卡(NIC)。这样不仅节约了CPU资源,还提高了虚拟机的网络性能,把同数据中心虚拟机之间的网络延迟降低了10倍。

 

FPGA复用主机网络的初心是加速网络和存储,更深远的影响则是把FPGA之间的网络连接扩展到了整个数据中心的规模,做成真正的cloud-scale 超级计算机。

 

注:文章仅代表作者个人的观点,欢迎大家留言交流。

 


作者介绍:张马腾,毕业于西南大学计算机网络专业,海云捷迅工程师。10年IT行业从业经验,对IT基础设施计算、存储、网络、数据库等均有丰富工作经验和深刻理解。获得《网络规划设计师》高级资格证书、《网络工程师》证书、红帽RHCE证书、ITIL IT ServiceManagement认证等。在云计算行业深耕多年,深入了解各虚拟化技术人,如kvm、VMware、Hyper-V 、XEN、Docker等。3年OpenStack实战经验,深入了解OpenStack各组件的工作原理,项目实施、运维经验丰富。参与设计过多个基于OpenStack的大规模云平台,如云南电信私有云、深圳市疾控中心私有云、张家港工业私有云、永康五金之都私有云、重庆水利电力职业学院私有云等。负责北京信息科技大学等多个边缘实验平台项目交付。