面向机器学习、数据分析和视频流的赛灵思可重配置加速堆栈

作者:Karl Freund, Moor Insights & Strategy 高级分析师

FPGA 特有的可重编程性可提供高性能和高灵活性,同时还能加速超大规模数据中心的创新

概述
数据类型复杂的工作负载加速,是超大规模云、电子商务和社交网络数据中心正越来越多面的难题,例如 4K 视频和自然语言。这类数据处理往往超出了传统 CPU 的处理能力。号称“超七大”数据中心公司的阿里巴巴、亚马逊、百度、脸书 (Facebook)、谷歌、微软和腾讯对这个问题特别敏感。在这些公司中 , 这些新应用往往需要数千台加速的应用服务器来支持。

虽然 GPU 和专用集成电路 (ASIC) 等特殊用途的硬件能有效地为这些代码加速,但快速变化的先进算法会让一款专用加速器刚一完成开发、测试、投产,就很快过时。对ASIC 来说,过时最容易。因此许多超大规模数据中心公司把目光投向了现场可编程门阵列 (FPGA)。这是一种专用可重编程硬件 , 能通过低功耗、高度灵活的硬件平台提供专用加速器的性能优势,支持更快创新。

为更好地满足这一新兴市场需求,在 FPGA 市场中占有巨大市场份额并居技术领先地位的赛灵思近期宣布推出可重配置加速堆栈,初步针对三大计算密集型应用:机器学习、数据分析和流媒体视频直播。借助这些新型解决方案,赛灵思旨在通过提供用于超大规模数据中心中部分增长速度最快的工作负载的各种库、开发工具和参考设计,降低阻碍 FPGA 通用的编程门槛,并帮助赛灵思客户加速产品上市进程。

赛灵思的数据中心加速器战略
据赛灵思介绍,赛灵思加速堆栈(图 1)结合使用 UltraScale FPGA 和一种面向快速演进的工作负载和算法的高灵活可重编程平台,可提供比传统 CPU 高出 20 倍的加速性能。

图 1:赛灵思加速堆栈

图 1:赛灵思加速堆栈

在体育赛事和电脑游戏活动直播不断风靡的推动下,视频直播迎来大发展,并对提供这些服务的数据中心提出了巨大需求。与此类似,AI 的使用也正迎来五花八门的各种应用,提供海量数据用于培训神经网络,供其学习和识别数据中的模式。受训网络随后可用于图像识别、自动驾驶、搜索优化和自然语言翻译等多种不同应用中。在这两大领域中,数据中心越来越多地使用专用加速器来实现对用户查询的低延迟响应。今天在数据中心中,使用 FPGA 并不新鲜。它们已经广泛应用于网络和存储等应用,例如加速、智能 NIC、NFV、压缩、安全性和闪存阵列。微软近期宣布为加速搜索工作负载,将在其 Bing 搜索和 Azure Cloud 应用中广泛使用 FPGA。微软指出,之所以部署 FPGA 这类加速器,而不采用针对特定工作负载的固定功能 ASIC 或 GPU,关键是因为 FPGA 具有高度的灵活性和可重编程性。

赛灵思期望借助这个新型的、用于数据中心工作负载加速的可重配置加速堆栈,加速FPGA 在数据中心中的更广泛应用。该产品专为世界最大的数据中心而设计,例如阿里巴巴、亚马逊、百度、Facebook、谷歌、微软和腾等“超七大”数据中心公司。赛灵思的战略是既要充分利用 FPGA 的灵活性、性能和计算效率,同时又要让该技术随着业务需求变化易于开发、部署和演进。

众所周知,FPGA 一直存在编程难的问题,需要同时兼具软硬件技能的紧缺人才。“加速堆栈”的推出意味着赛灵思提供的不止是 FPGA,它还提供优化的数学函数库与应用函数库、软件框架实现方案、支持 OpenCL 和 C/C++ 等高级语言的工具、便于配置和管理的 Openstack 支持,以及预期的加速器板参考设计。该加速堆栈旨在实现加速平台和应用的快速开发与部署,同时还通过可重编程功能和可重配置功能不断增强特性。

赛灵思针对超大规模数据中心领域发展最快的三种工作负载推出该加速堆栈战略。其一是机器学习,其作为底层算法和新应用而兴起,不断帮助改善广告宣传、客户互动和新的客服。其二是高清视频流,尤其是在游戏即服务市场。在这个市场中视频编解码加速要求的计算性能超过了标准的 x86 CPU 所提供的性能水平。其三,超大规模应用中广泛使用的 SQL 查询加速。

机器学习加速
使用神经网络分类图像、翻译文本和语音、识别无结构数据中的底层模式,需要“两阶段”法。第一阶段,使用海量加标记的样本数据和计算培训神经网络。一旦网络培训完,便进入第二个阶段 ( 即推断阶段 ), 通过受训的神经网络处理新数据样本或查询,以确定其可能的级别。推断是当今最大规模数据中心中的一个巨大的工作负载,因为它负责实现广泛的日益扩展的重要应用,例如语言翻译、自然语言接口、照片和视频内容识别,以及网上产品选择与促销。其中两个最大的人工智能市场分别是无人驾驶汽车和机器人,它们即将驶上世界各地的公路或是出现在世界各地的工厂里。在这两大领域,赛灵思已有良好的定位。公司的产品已应用到 23 家汽车制造商的高级驾驶员辅助系统(ADAS) 中和世界各地的 85 种车型中(图 2)。

图 2:无人驾驶传感器和处理器

图 2:无人驾驶传感器和处理器

赛灵思可重配置加速堆栈为数据中心中的推断计算 ( 即第二阶段的神经网络处理 ) 提供解决方案。运算的推断侧可能每次查询需要近乎实时地完成数十亿次计算。在后台,社交网络和电子商务网站在多个神经网络上正在执行数百万次同步查询。其结果产生的综合计算吞吐量十分巨大,对数千乃至数百万并行处理的需求要求一款功耗不大且按需缩放的解决方案。赛灵思认为新平台在这个地方应能发挥理想的作用,因为一台服务器中能配置 24 个处理器来处理这样的负荷,而每个处理器根据赛灵思的说法,功耗不足 50 瓦。

今天云端的绝大部分推断计算是使用英特尔 Xeon CPU 完成的。据赛灵思计算,将赛灵思 FPGA 用于深度学习 , 相比今天使用的英特尔 Xeon V4 (Broadwell) CPU,计算效率高出 10 倍以上。据赛灵思提供的数据,一台配备 16 个赛灵思加速器的服务器 , 其性能就可超越整个机架的标准英特尔 Xeon 服务器(图 3)。

图 3:使用赛灵思 FPGA 的单个服务器与整个机架的 CPU 性能对比

图 3:使用赛灵思 FPGA 的单个服务器与整个机架的 CPU 性能对比

实现这些性能结果的关键赛灵思差异化技术是对降精度算术运算的支持,即对 16 位浮点和 8 位整数数学的支持。许多神经网络在培训完成后,即便使用较低精度运算 , 也能得到准确结果,因此在相同功耗下 , 相比 CPU 能将性能有效提升 2 倍或 4 倍,因为CPU 在本机用 32 位数值完成这些计算。据赛灵思称,理论上这些较低精度 ALU(算术逻辑单元)能让赛灵思 FPGA 的计算效率相比不具备此功能的 FPGA 要高出 2-6 倍。

该赛灵思机器学习堆栈包含用于卷积网络(常用于图像分类)的常见 Caffe 深度学习框架的优化版本。针对那些需要构建自己的机器学习应用的用户,该堆栈还提供了XDNN(赛灵思 DNN 原语库)和 GEMM(矩阵乘法通用矩阵)。据赛灵思称,移植和优化谷歌 TensorFlow 等更多深度学习框架的工作正在如火如荼进行中。赛灵思还提供 SDAccel 设计环境、Vivado 设计套件、IP 模块和参考 PCI 加速器板设计,以简化初始评估和开发流程。通过提供这些预先优化的工具和库,赛灵思期望让更多能从加速中获益的工作负载被采用。

视频转码加速
赛灵思在众多网络和视频广播功能加速市场上已经建立了良好的地位,凭借丰富的经验 , 全新的视频转码加速堆栈也就水到渠成了。由于众多消费者转向 OTT(over-the-top)服务,尤其是在观看现场体育赛事和游戏串流时,对更高效平台的需求已有显著增长。

今天大多数数据中心的视频流使用基于软件的转码解决方案 , 运行在本机的英特尔Xeon 服务器上。随着这些应用迁移到更高分辨率的 4K 视频平台和 H.265 编码算法上,对加速解决方案的需求也日渐迫切,因为 CPU 解决方案难以提供以 4K 分辨率进行实况直播所要求的帧速率。

据赛灵思提供的数据,目前用于高清质量视频的 FPGA 转码器能提供 60fps 的实时性能,计算效率提升 40 倍 , 而且在 1920x1080 分辨率下编码质量比 Xeon E5 CPU 高出 90%。凭借新一代 16nm UltraScale+ FPGA,结合对广播质量级编码器的优化,赛灵思称用户应能够在 4K 超高清分辨率下得到类似的效果,实现云服务提供商和观众可能需要的体验质量。根据赛灵思提供的数据,从两种方案的相对成本来看,赛灵思 FPGA 每服务器机架的吞吐量有望达到 CPU 的 20 倍,单位成本转码吞吐量大约是 CPU 的 12倍。该加速堆栈支持的视频库由赛灵思合作伙伴提供,该合作伙伴也为广播商提供加速应用。

数据分析加速
近来 FPGA 一直在超大规模数据中心中方兴未艾,越来越多地被用来加速大数据分析。这是一个非常重要的领域,因为 SQL 数据查询在整个超大规模基础设施上都有使用。赛灵思为这个市场也开发了一个堆栈,正取得理想的初期成效。赛灵思提供的 SQL 数据移动器库可用于将数据卸载到 FPGA 加速器。该应用运用 FPGA 从 SQL 或 NoSQL数据库的适当行和列构建数据模块,然后加速客户具体分析与查询。此外,赛灵思已经为 Postgres 开源数据库创建了 TPC Query 6 内核加速示例。据赛灵思称,其加速幅度是用于这些内核的 Xeon EP CPU 的 15 倍。在近期的热门芯片大会 (Hot Chips) 上,百度演示了一个项目,介绍了他们如何在赛灵思 FPGA 上实现 25 倍加速结果(图 4)。百度提到该解决方案的性能受制于到 FPGA 的内存带宽,这是赛灵思准备进一步解决的问题。赛灵思已在 3D 器件中添加了他们近期推出的用于集成高带宽内存(HBM2) 和FPGA 的解决方案。

图 4:用于 SQL 查询的 FPGA 加速

图 4:用于 SQL 查询的 FPGA 加速

硬件可重配置的价值
虽然关于 FPGA 的讨论重点一般聚焦于它们的性能、低功耗以及其颇有难度的编程模式,但随着时间的推移,FPGA 所特有的可重配置和可重编程特性,或许是快速发展的技术领域中 FPGA 所独具的最大优势。GPU(尤其是 ASIC)加速器针对并行数据处理提供一组固定的功能单元。这种初始设计体现了开发团队在开始新型芯片开发工作时对底层计算和数据要求的理解。如果研发人员此后想要尝试新技术或发现新算法,而且新技术或新算法要求不同的功能集或使用不同的数据类型,使用 FPGA 进行开发的团队则能同时满足硬件特性和软件要求。如果是使用构建 ASIC 的方法,不仅耗时长达数年之久,而且成本可能达数千万美元。如果底层技术和算法迅速发展演进,就如人工智能和机器学习这种情况,如此巨大的投入,最终结果可能是在供货之前就已经过时。FPGA 凭借其独特的可重编程性和可重配置性,能避免这一窘境。

在数据中心应用加速中利用硬件可重编程性可带来两重好处:高灵活性和加速产品上市进程。通过可重编程、可重配置的硬件,FPGA 能让全球领先的云服务供应商迅速解决今天的难题,适应技术和业务需求的变化。而且由于 FPGA 是通过标准接口连接到CPU,设计团队能够自由地选择与 FPGA 配对的合适 CPU 架构,包括英特尔或 AMD提供的 x86、ARM SoC 和 IBM OpenPOWER。通过同时实现硬件和较高层软件的重编程,这种实现方案随着时间的推移能够持续带来明显的性能和总拥有成本优势,保护原始投资。

与构建 ASIC 相比,FPGA 在加速产品上市进程方面具有显著的优势。通过根据平台及应用需求而精调和优化的软件库,开发人员能够迅速开展创新。这种方法得到的平台能迅速适应未来的变化和特性增强,不必像创建 ASIC 那样需要为期数月的开发流程。对为了推动更多云应用和云服务创新而需要每周更新大量算法的云环境来说,这一功能尤为适用。

可重编程性在机器学习领域的优势的例子就是近期兴起的较低精度整数(8 位用于推断)和浮点(16 位用于培训)算术。只要且只有底层硬件能在经优化的算术单元或逻辑上原生地执行这些计算,这种方法就能使深度学习算法的性能提升两倍甚至四倍。通过结合使用 FPGA 与赛灵思最新可重配置加速堆栈,项目团队能在硬件中更快地实现自己的最新创新,从而潜在地加速产品上市进程,同时重复使用他们现有的硬件并延长其使用寿命。

结论
根据近期百度和微软等公司发布的讯息,由于综合性能、功耗和可重编程性三方面优势,基于 FPGA 的加速应用最终得到大量采用。凭借新的可重编程加速堆栈,赛灵思已在减少 FPGA 的编程障碍方面取得进展,将进一步推动超大规模数据中心三大最热门市场:机器学习、高清视频转码直播和 SQL 查询加速对 FPGA 的采用。该加速堆栈包括一整套逻辑、库、软件框架、参考设计和工具,旨在帮助开发人员更快地抓住加速机遇和缩短产品上市时间。

在 GPU、ASIC 和 FPGA 这三种当今市场上可供使用的加速技术中,唯有 FPGA 具有硬件可编程性优势。而且赛灵思即将推出的新平台以正在经历快速创新与变革的领域为重点,在这些领域中通过硬件重配置,使硬件能够跟上软件的发展步伐,从而提供更高的灵活性并加速产品上市进程。这就是说,对浮点密集型编码且有明显的并行化处理可能的应用来说,GPU 或许是最佳解决方案。对有数百万加速单元用于特定代码的超大规模环境来说,投资开发 ASIC 可能更合算,因为这样有望能实现更低的单位成本和更高的性能。但对日新月异的环境和种类繁多的目标应用来说,FPGA 能为数据中心加速提供有吸引力的解决方案。

通过为早期试用者和创新者提供可靠的可重配置加速技术以及以“超七大”数据中心为重点,赛灵思有力地证明 FPGA 能跻身为超大规模数据中心环境中的主要竞争者。