如何更好的实现高带宽数据加速应用?
在众多的行业中,数据加速是构建高效、智能系统的关键的地方。传统的通用途理器在支持用户去突破性能和延迟限制方面性能不足。而已出现的许多加速器技术弥补了基于定制芯片、图形处理器或动态可重构硬件的空白,但其成功的关键在于它们能够集成到一个以高吞吐量、低延迟和易于开发为重要条件的环境当中。由Achronix和BittWare联合开发的板级平台已针对这些利用进行了优化,从而为开发人员提供了一条可部署高吞吐量数据加速的快捷途径。
日趋增长的散布式加速需求
在云计算和边沿计算中,业界渴求能够支持各种利用的高性能。为了满足这一需求,数据中心、网络集群和边沿计算站点的运营商正在转向定制化的加速器技术。
对需要高性能计算平台的用户,专用加速器在实践中被经常使用来应对各种挑战;这些用户不再依托诸如IntelXeon系列CPU这样的传统通用CPU来支持数据吞吐量不断增长这一需求。通用CPU的核心问题在于,虽然摩尔定律一直在以大约每两年就会使每平方毫米硅片中集成的晶体管数量增加一倍的速度演进,但它不再支持时钟速率的增长。另外,CPU内的并行性很快到达了天花板。因此,其他技术更合适支持新型工作负载,包括如机器学习、基因组研究、数学和统计分析、语音和图象辨认和数据发掘和搜索。
与传统由数据库驱动的利用相比,这些新的工作负载通常没法很好地映照到传统CPU流水线上;例如一些神经网络的训练已被验证可以在GPU上运行良好,这些算法可以利用数百个并行浮点着色器内核通过所需的数万亿个步骤来迭代更新一个大型网络。另外一方面,基因组研究和数据搜索需要利用大量的对照步骤,并需处理低分辨率的整数数据。虽然这些工作负载可以利用CPU或GPU来完成处理,但是在这些平台上运行时,这些任务的计算效力和能效相对较低。自定义的基于ASIC或FPGA的加速器能够以更低的功耗提供更大的吞吐量,这是由于它们支持设计人员去构建针对这些操作和数据类型进行优化的专用电路。
互联网搜索和社交媒体等领域内的超大范围数据中心运营商已采取加速器概念来保障其服务器载荷的高效运转。语音响应系统现在已被用于平常生活中,并得到了运行在传统刀片服务器与自定义加速器组合上的人工智能算法的支持。随着对这些基于机器学习和数据发掘等技术的利用的需求不断增长,大量的企业用户正在转向基于加速器的方案,以使他们自己能跟上需求的步伐。据研究机构ResearchandMarkets的分析预测,仅数据中心加速器这一市场的范围,就将从2018年的28亿美元增长到2024年的212亿美元,复合年增长率接近50%。
在这类增长以外,加速器的利用还注定将扩大到数据中心以外。诸如虚拟现实、自动驾驶、机器人技术和工业4.0等领域没法忍耐信息在经过远程数据中心中继后带来的电信延迟。愈来愈多的计算能力将需要被部署在边沿计算机架中,而被安装于路边机柜中、移动基站旁或校园柜子内。
在各种数据中心和边沿计算用例中,有诸多常见的需求驱动因素,比如能效,快速转型,和可扩大性。能效是下降冷却本钱和复杂性和将电费花消降到最低的核心要求。低功耗操作在边沿计算装置中相当重要,由于其中的环境温度的控制功能较弱,并且还需将保护的需求保持在最低限度。
在许多领域中,快速转型是不可避免的,并会创造新的需求,以便在变化出现时能够根据要求对利用进行调剂和再加工。它不单单是对现有利用的更新;通常,新的用例在出现时,都会挑战用户及时做出反应的能力。而这些用例可能需要开发将不同的技术和概念结合在一起的利用,例如将人工智能(AI)功能添加到数学建模和数据发掘系统中。为了应对这些转型,用户需要调用可以很好地进行协同工作的加速器技术,并且各个组件可以通过网络连接来进行高速通讯。
可扩大性一样重要。随着面向特定服务的客户群不断增长,运营商需要知道他们能够轻松地增加容量。一样相当重要的是,具有高效通讯能力的高度可编程解决方案通过增加并行性来支持其扩大能力。对诸如100Gbps以太网和更快的链路等协议的支持,可确保能够使用散布式处理去适应增长。例如,边沿利用可能会调用云支持,直到本地机柜升级到具有额外的处理能力。
用于加速的硬件平台
加速器的硬件可以有多种情势。理想的配置是提供PCIExpress(PCIe)和高速以太网连接的组合,并可以选择添加自定义连接以支持诸如环形、网状和菊花链结构等各种拓扑结构,以满足利用的各种数据吞吐量需求。对PCIe的支持通过内存映照接口将加速引擎与主处理器和其他加速器紧密集成。能够在诸如PCIe之类的接口上存储同享结构来交换数据,就能够极大地简化散布式利用的开发。
以100Gbps或更高速率运行的以太网连接进一步提供了扩大范围。通过使用它们自有的以太网端口,而不是通过主机的主网络接口来路由数据包,加速器可以彼其间高效地相互调和。例如,在一个散布式存储配置中,加速卡可以被直接连接到嵌入式非易失性存储器(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)等概念的流行,刀片服务器在数据中心内部和数据中心之间的通讯管理任务中正发挥着更加重要的作用。但是,随着线速增加到100Gbps乃至更高,Xeon级服务器处理器的处理负担是非常巨大的,数据中心运营商热中于将许多SDN功能的处理工作卸载到附近的加速卡上。在新兴的架构中,通用服务器CPU被用于处理异常事件,而同时加速器则负责处理大量的网络流量。当新的需求、利用和安全要挟出现时,FPGA能够更新算法和网络协议处理,从而使它们成为网络加速的理想基础平台。