Achronix白皮书:软件定义的硬件提供打开高性能数据加速大门的钥匙
2020-03-23
来源:Achronix
本文概要
在众多的行业中,数据加速是构建高效、智能系统的关键之处。传统的通用处理器在支持用户去突破性能和延迟限制方面性能不足。而已经出现的许多加速器技术填补了基于定制芯片、图形处理器或动态可重构硬件的空白,但其成功的关键在于它们能够集成到一个以高吞吐量、低延迟和易于开发为首要条件的环境之中。由Achronix和BittWare联合开发的板级平台已针对这些应用进行了优化,从而为开发人员提供了一条可部署高吞吐量数据加速的快捷途径。
日益增长的分布式加速需求
在云计算和边缘计算中,业界渴求能够支持各种应用的高性能。为了满足这一需求,数据中心、网络集群和边缘计算站点的运营商正在转向定制化的加速器技术。
对于需要高性能计算平台的用户,专用加速器在实践中被常用来应对各种挑战;这些用户不再依靠诸如Intel Xeon系列CPU这样的传统通用CPU来支持数据吞吐量不断增长这一需求。通用CPU的核心问题在于,尽管摩尔定律一直在以大约每两年就会使每平方毫米硅片中集成的晶体管数量增加一倍的速度演进,但它不再支持时钟速率的增长。此外,CPU内的并行性很快达到了天花板。因此,其他技术更适合支持新型工作负载,包括如机器学习、基因组研究、数学和统计分析、语音和图像识别以及数据挖掘和搜索。
与传统由数据库驱动的应用相比,这些新的工作负载通常无法很好地映射到传统CPU流水线上;例如一些神经网络的训练已被验证可以在GPU上运行良好,这些算法可以利用数百个并行浮点着色器内核通过所需的数万亿个步骤来迭代更新一个大型网络。另一方面,基因组研究和数据搜索需要利用大量的对比步骤,并需处理低分辨率的整数数据。尽管这些工作负载可以利用CPU或GPU来完成处理,但是在这些平台上运行时,这些任务的计算效率和能效相对较低。自定义的基于ASIC或FPGA的加速器能够以更低的功耗提供更大的吞吐量,这是因为它们支持设计人员去构建针对这些操作和数据类型进行优化的专用电路。
互联网搜索和社交媒体等领域内的超大规模数据中心运营商已采用加速器概念来保障其服务器载荷的高效运转。语音响应系统现在已经被用于日常生活中,并得到了运行在传统刀片服务器与自定义加速器组合上的人工智能算法的支持。随着对这些基于机器学习和数据挖掘等技术的应用的需求不断增长,大量的企业用户正在转向基于加速器的方案,以使他们自己能跟上需求的步伐。据研究机构Research and Markets的分析预测,仅数据中心加速器这一市场的规模,就将从2018年的28亿美元增长到2023年的212亿美元,复合年增长率接近50%。
在这种增长之外,加速器的应用还注定将扩展到数据中心之外。诸如虚拟现实、自动驾驶、机器人技术和工业4.0等领域无法忍受信息在经过远程数据中心中继后带来的电信延迟。越来越多的计算能力将需要被部署在边缘计算机架中,而被安装于路边机柜中、移动基站旁或校园柜子内。
在各种数据中心和边缘计算用例中,有诸多常见的需求驱动因素,比如能效,快速转型,以及可扩展性。能效是降低冷却成本和复杂性以及将电费花销降到最低的核心要求。低功耗操作在边缘计算装置中至关重要,因为其中的环境温度的控制功能较弱,并且还需将维护的需求保持在最低限度。
在许多领域中,快速转型是不可避免的,并会创造新的需求,以便在变化出现时能够根据要求对应用进行调整和再加工。它不仅仅是对现有应用的更新;通常,新的用例在出现时,都会挑战用户及时做出反应的能力。而这些用例可能需要开发将不同的技术和概念结合在一起的应用,例如将人工智能(AI)功能添加到数学建模和数据挖掘系统中。为了应对这些转型,用户需要调用可以很好地进行协同工作的加速器技术,并且各个组件可以通过网络连接来进行高速通信。
可扩展性同样重要。随着面向特定服务的客户群不断增长,运营商需要知道他们能够轻松地增加容量。同样至关重要的是,具有高效通信能力的高度可编程解决方案通过增加并行性来支持其扩展能力。对诸如100 Gbps以太网和更快的链路等协议的支持,可确保能够使用分布式处理去适应增长。例如,边缘应用可能会调用云支持,直到本地机柜升级到具有额外的处理能力。
用于加速的硬件平台
加速器的硬件可以有多种形式。理想的配置是提供PCI Express(PCIe)和高速以太网连接的组合,并可以选择添加自定义连接以支持诸如环形、网状和菊花链结构等各种拓扑结构,以满足应用的各种数据吞吐量需求。对PCIe的支持通过内存映射接口将加速引擎与主处理器和其他加速器紧密集成。能够在诸如PCIe之类的接口上存储共享结构来交换数据,就可以极大地简化分布式应用的开发。
以100 Gbps或更高速率运行的以太网连接进一步提供了扩展范围。通过使用它们自有的以太网端口,而不是通过主机的主网络接口来路由数据包,加速器可以彼此间高效地相互协调。例如,在一个分布式存储配置中,加速卡可以被直接连接到嵌入式非易失性存储器(NVMe)模块上,每个模块中的独立搜索引擎使用通过其以太网连接发送的消息,来识别分散在多个节点上的数据,从而可以很容易地进行协调。
无论是作为主要的加速技术还是与GPU和其他技术配合使用,FPGA都非常适合数据中心和边缘计算应用的需求。FPGA的一个关键优势是可以在系统中来对其进行编程,以创建各种各样的数字电路。软件可以为目标应用选择配置比特流,并将其发送以配置FPGA。通过将新模式加载到器件上的逻辑阵列中,FPGA可以根据需要进行动态更新以承担新的任务。可编程性创建了由软件定义的硬件,从而完全支持用户不仅能够动态更改应用,还可以动态更改支持它们运行的硬件。将硬件可编程性与连接多个加速器的能力相结合,为用户提供了极大的灵活性。
许多计算类用户已经意识到FPGA在加速应用中的强大功能。例如,微软的Catapult项目使用FPGA为其搜索服务构建加速器,并且在其BrainWave项目中使用FPGA进行高速人工智能推理。亚马逊通过其F1服务提供了可在云端使用的FPGA,这使得到远程用户可以容易地部署这项技术。
在其他领域选择使用FPGA加速也已有一些时间。例如, FPGA逻辑阵列多年来一直被用于军事和航空航天领域的雷达处理,以及医学领域的实时成像。随着工业领域接受了实时机器设备健康监测等概念,以作为迈向工业4.0的一部分,用户可以转向使用FPGA来提高其算法的质量和响应能力。
相对于使用GPU来进行数据加速,采用FPGA的实现方式通常受益于较低的延迟和更高的能效。GPU的一个关键问题是:它们的计算效率通常只是其理论吞吐量的一小部分。因为GPU针对3D图形渲染流水线进行了优化,基于数据高度重用的执行流水线设计,导致着色器内核往往会在相对较小的本地存储以外运行。数据流式工作负载提供的数据重用机会更少,这就意味着需要更频繁地用新数据来填充存储器,而这会影响处理时间。CPU中面向缓存的子系统也同样受制于类似的问题。FPGA可以实现数据自由流动的完整流水线,因此可以提供了远远高于GPU或者CPU的计算效率。例如,基因组研究应用的基准测试表明,与基于CPU的实现方式相比,基于FPGA的硬件可将速度提高80倍。
在高性能计算和云计算环境中,架构师正在转向FPGA加速以避开系统中其他部分出现的瓶颈。通过将更多工作移交给存储子系统本身,数据中心用户可以在效率上得到大幅提升。数据库加速、数据分析和其他适用于计算型存储的处理形式可以与加密、去重复数据和安全擦除编码等低层级服务功能一起被部署在加速器上。
随着诸如软件定义网络(SDN)和网络功能虚拟化(NFV)等概念的流行,刀片服务器在数据中心内部和数据中心之间的通信管理任务中正发挥着更为重要的作用。但是,随着线速增加到100 Gbps甚至更高,Xeon级服务器处理器的处理负担是非常巨大的,数据中心运营商热衷于将许多SDN功能的处理工作卸载到附近的加速卡上。在新兴的架构中,通用服务器CPU被用于处理异常事件,而同时加速器则负责处理大量的网络流量。当新的需求、应用和安全威胁出现时,FPGA能够更新算法和网络协议处理,从而使它们成为网络加速的理想基础平台。
实施有效加速
被亚马逊(Amazon)、Facebook和微软(Microsoft)等超大规模用户采用的第一批加速器都是大幅度定制的设计。这些公司能够在打造自己的板卡设计中确保所需的规模经济,无论是基于自己设计的专用集成电路(ASIC),还是采用现成的FPGA和GPU。从成本和时间的角度来看,对于企业数据中心和边缘计算用户来说,他们难以在这种定制芯片级设计中找到合理的规模。然而,设计定制的ASIC和板卡并不是必需的。对诸如以太网和PCIe等标准接口的需求,不仅使使用标准板卡级产品成为可能,而且也是可取的。
作为一家长期提供硬件加速产品的供应商,BittWare一直在为从高性能计算到云加速到仪器仪表等众多领域内的客户设计采用PCIe尺寸的、基于FPGA的板卡,并在这方面积累了丰富的经验。现在,作为Molex集团的子公司,BittWare能够充分借助其全球供应网络以及与戴尔(Dell)和惠普企业(HP Enterprise)等服务器供应商的深厚关系。BittWare是唯一一家可与多家主流FPGA供应商合作的重要批量化供应商,能够满足企业客户的质量认证、验证、产品生命周期管理和支持需求,这些客户希望为关键任务型应用去大规模部署FPGA加速器。
在这些应用中,BittWare实现的一个重要差异化在于该公司为其基于FPGA的加速器提供了广泛的软件支持。每个加速卡均配有适用于Linux和Windows系统的驱动软件,可通过PCIe和以太网连接将其快速集成到各种系统中。除了支持主CPU和加速卡之间的通信外,该驱动还支持接入加速卡上的嵌入式固件。这个固件可以处理众多管理和自检功能。
它们使FPGA电路能够根据需要的新功能重新进行配置,此外还提供了一些对功耗、电压和温度的监测程序。如果主机系统中的冷却功能失效,那么担任管理者的固件可以关闭加速卡,以避免热过载。此外,软件组合包还包括各种参考设计,以便开发人员能够快速构建配置,使他们可以测试加速卡的功能并开始在其自己的应用上工作。
对于最新一代的加速卡,BittWare与Achronix紧密合作。Achronix是唯一一家能够同时提供独立FPGA芯片和嵌入式FPGA(eFPGA)开云棋牌官网在线客服知识产权(IP)的FPGA供应商。VectorPath?S7t-VG6加速卡使用了Achronix采用7nm 工艺打造的、结合了很多功能的Speedster?7t FPGA芯片,不仅可以在内部提供高吞吐量数据加速,而且还支持现今从机器学习到先进仪器等系统所需的高度分布式、网络化的架构。
图1:VectorPath S7t-VG6加速卡
软件友好型的硬件提供了最大的灵活性
通过对分布式架构提供直接支持,VectorPath S7t-VG6加速卡中使用的Speedster7t FPGA芯片标志着与传统FPGA架构不同的重大转变,它使面向软件的开发人员更容易地构建定制化的处理单元。这种创新的全新架构与诸如英特尔(Intel)和赛灵思(Xilinx)等供应商生产的传统FPGA完全不同,传统FPGA的设计关注点并不在数据加速。
在设计Speedster7t的架构时,Achronix创建了一种可最大限度地提高系统吞吐量的FPGA芯片,同时还为计算机架构师和开发人员提高了易用性。与传统的FPGA架构相比,Speedster7t FPGA芯片的一个关键差异化点在于它包括一个创新的二维片上网络(2D NoC),可以在逻辑阵列内的处理单元与各种片上高速接口和存储器端口之间流传数据。
传统的FPGA要求用户去设计电路来将其加速器连接到高速以太网或PCIe数据端口和/或存储器端口。通常,一个独立系统是由连接到多个高速端口的多个加速器组成。例如,下图就说明了一种场景,其中有两个加速器连接到两个存储端口上,以共享一个存储空间。这种场景使用了FIFO来管理存储器和FPGA时钟之间的时钟域交叉(CDC)。此外,FPGA逻辑架构中还需要一个交换功能来管理寻址、仲裁和反压。在传统的FPGA中,这项功能会消耗大量的FPGA资源,并且其复杂程度足以降低系统性能并使时序收敛变得复杂。
Achronix采用了由软件设计来实现硬件的方法,而这种硬件中的以太网和其他高速I / O端口可用二维片上网络(2D NoC)轻松地连接到定制的加速器功能上。Speedster7t NoC不再需要设计CDC和交换功能来将加速器连接到高速数据或内存端口。通过简单地将这些功能连接到NoC,就消除了连接方面的难题,从而简化了设计,减少了FPGA资源的消耗,提高了性能并简化了时序收敛。
图2:传统FPGA设计面临的挑战
图3:Speedster7t二维片上网络支持软件友好型硬件
为了实现高性能的算术运算,每个Speedster7t器件都具有一个大型可编程计算单元阵列,它们被有序地放置在机器学习处理器(MLP)单元模块中。MLP是一个高度可配置的计算密集型单元模块,在每个周期内可支持多达32个乘法/累加(MAC)运算。在以加速器为中心的设计中,MLP的存在使得在完全可编程逻辑和硬连线算术单元之间能够有效地共享资源。
尽管有些FPGA倾向于使用HBM2存储器,其中FPGA和存储器被组装成一个昂贵的2.5D封装,而Speedster7t系列却采用GDDR6内存标准接口。这种接口提供了当今片外存储器可实现的最高性能,并且成本显著降低,从而使团队更容易去实现带有高带宽存储阵列的加速器。一个GDDR6存储控制器可以支持512 Gbps的带宽。VectorPath S7t-VG6加速卡可提供八组存储器,总存储带宽可以达到4 Tbps。此外,板上还有一个DDR4接口,可用于访问频率较低或不需要GDDR6吞吐量的数据。
VectorPath S7t-VG6加速卡提供了许多高性能接口,用来支持分布式架构和高速主机通信。现在,该加速卡提供了PCIe Gen 3.0的16通道合规性和认证,并提供获取Gen 4和Gen 5资质认证的途径。在以太网连接方面,该加速卡采用已获得广泛支持的光学接口模块,依据QSFP-DD和QSFP56标准,能够处理高达400 Gbps的超高线速。
在加速卡的另一端还有一个OCuLink扩展端口,以支持很多其他的低延迟应用场景。例如,OCuLink端口可用于将加速卡连接到各种外围设备上,比如用于计算存储或数据库加速应用的NVMe存储阵列。与采用连接到主处理器的PCIe接口相比,OCuLink连接能够成为一个更好的选择,因为它提供了一种消除了系统级延迟和抖动的高确定性的连接。OCuLink端口还可以引入其他网络连接,从而可扩展实现QSPF-DD或QSFP56之外的各种端口规格。
图4:VectorPath的网络和存储接口
在VectorPath S7t-VG6加速卡的前面板上还包括多个时钟输入,它们是在将多个加速卡同步到一起时通常需要的。两个SMB时钟输入连接器支持从1PPS和10 MHz的时钟输入,它们在进入FPGA之前,就已被连接到抖动清除器。一旦进入FPGA,这些时钟就可以被倍频或分频成为特定应用所需的频率。
还可以通过通用数字I / O端头进行进一步扩展。该I / O端口支持单端3.3V连接和低电压差分(LVDS)信号,支持外部时钟、触发器和专用I / O等自定义信号直接连接到Speedster7t FPGA。该扩展端口还可用于将VectorPath加速卡改造为传统硬件。
图5:VectorPath时钟输入和GPIO
适用于小批量和大批量需求
VectorPath S7t-VG6加速卡已考虑到了每个细节,例如可支持被动和主动空气散热和液体散热。此外,BittWare和Achronix还为医疗等需要更长产品生命周期的领域确保提供长期的供应与支持。在这些市场中,基于GPU的PCIe加速卡较短的产品生命周期与超过10年的系统服务支持需求是不符的。
对于更大批量需求,特别是在边缘计算等场景中,客户可以使用BittWare的成本降低计划来简化硬件,其设计仅仅支持客户所需的I / O选项。此外,BittWare也可提供电路板设计文件以及VectorPath S7t-VG6加速卡随附的软件和驱动器的使用。利用Achronix的Speedcore eFPGA IP,也可以走向定制系统级芯片(SoC)器件。客户可以构建自己其中包括Speedster7t可编程性的SoC,但又具有ASIC的成本结构。
为了实现更好的开发和更便捷的部署,VectorPath S7t-VG6加速卡可以由BittWare以其TeraBox平台的形式来提供预先集成的多核服务器。外形从2U到5U,TeraBox的机架式机箱最多可容纳16个BittWare PCIe加速卡,并由双路英特尔(Intel) Xeon处理器管理。作为一个完整的解决方案,TeraBox为客户提供了启动和运行FPGA开发的最快机制。在Bittworks II和FPGA Devkit软件的支持下,用户可以直接使用TeraBox并立即开始开发工作。或者,客户也可以从Dell和HP Enterprise购买包含BittWare加速卡的预配置服务器。
图6:TeraBox平台的部署
结论
考虑到用户需要在多种多样的应用中寻求数据加速功能,BittWare和Achronix已经创建了一种高度灵活的引擎,无论它们是被单独使用,还是作为大型异构处理阵列中的一部分,都可以被轻松部署。作为该加速卡的核心芯片,Speedster7t FPGA为开发人员提供了构建高吞吐量应用的能力,这些应用可以充分利用可编程逻辑、PCIe以及高达400 Gbps的以太网连接。BittWare的软件和支持保证了这些开发人员在插入卡后就可以立即开始工作。FPGA和Speedster7t NoC的灵活特性意味着:随着应用的变化和发展,这些加速卡可以最大限度地延长其使用寿命。