算力新生态,透视异构计算的机会和挑战

文章来源:InfoQ

  • 如今,数据量井喷式增长,工作负载驱动异构计算,人们需要采用多种异构计算单元加速数据处理,以获得更高的吞吐、更低的延时和更低的成本。英特尔® FPGA 助力快手实现计算、网络和存储的三重加速,充分发挥硬件性能,提供更好的用户体验。

author-image

作者

算力助推经济增长,成为数字经济发展新引擎。今年 4 月,由 IDC、浪潮信息和清华大学全球产业研究院联合推出的《2021—2022全球计算力指数评估报告》显示,计算力指数平均每提高 1 点,数字经济和 GDP 将分别增长 3.5‰ 和 1.8‰。中国信通院发布的《中国算力发展指数白皮书》表明,在算力中每投入 1 元,将带动 3-4 元经济产出。算力发展指数每提高 1 点,GDP 增长约 1293 亿元。

虽然算力变得愈加重要,但是其发展却面临供需矛盾问题。一方面,对算力的需求增长迅猛。无论是企业数字化转型,还是智能终端消费和移动数据流量消费规模的不断扩大,都在持续释放算力需求;另一方面,传统的单一计算架构面临性能和功耗瓶颈,无法满足日益高涨的算力需求。简言之,算力遇到瓶颈,并且成为摆在企业和行业面前的难题。

异构计算 脱颖而出

如何解决算力瓶颈问题,业界提出了各种解决思路和方法,其中,异构计算从中逐渐脱颖而出,备受企业和行业期待。

异构计算(Heterogeneous Computing),主要指不同类型的指令集和体系架构的计算单元组成的系统的计算方式,在云数据中心、边缘计算场景等有着广泛应用。

它的兴起从表面上看与功耗瓶颈有关,但从更深层看,则与工作负载密切相关。虽然通用 CPU 拥有广泛应用,但是经过 30 多年的发展,通过提升 CPU 时钟频率和内核数量来提高计算能力的传统方式遇到散热和能耗瓶颈。

更重要的是,自 2020 年以来,受疫情影响,远程办公、线上学习、居家娱乐等应用进一步发展,刺激了对大数据、云计算、人工智能等技术的多样化需求,各行各业数字化转型加速。高性能计算、云计算和虚拟化、大数据分析等一系列的应用场景都会带来非常复杂的工作负载,这背后需要强大的算力支持。

英特尔行业解决方案事业部互联网行业技术总监高明表示,异构计算是受工作负载驱动的。在数据量越来越大的今天,人们需要采用多种异构计算单元加速数据处理,来获得更高的吞吐、更低的延时,并付出更低的成本。

相比传统的单一计算架构,异构计算不仅可以提高算力和性能,降低功耗和成本,而且还具备多类型任务的处理能力,发展潜力巨大。具体而言,异构计算能充分发挥 CPU/GPU 在通用计算上的灵活性,及时响应数据处理需求,搭配上 FPGA/ASIC 等特殊能力,来充分发挥协处理器的效能,根据特定需求合理地分配计算资源。并且,由于目前神经网络算法和与之对应的计算架构层出不穷,如果采用不断更新 ASIC 架构的方式,最终下沉到用户和企业身上,就会导致使用成本和替换成本过高,而异构计算成本更低,在产业落地上有更大优势。

结合异构计算的优势,高明总结了六大应用场景:第一类,HPC 高性能计算场景,包括汽车和航空航天建模仿真、电子自动化设计与验证、生命科学等;第二类是人工智能场景,不管是深度学习训练,还是深度学习推理,都需进行大量矩阵运算,尤其是大规模互联网应用场景,比如推荐、广告、搜索等;第三类是物联网与边缘计算场景,由于海量数据要在边缘或云端进行处理,其中在线推理任务需要大量的边缘和云端算力进行加速;第四类是 5G 和通信场景。虽然部分网络功能以软件 NFV 形式运行于 CPU 上,但是仍然有部分算法需要异构加速器(如 FPGA 或 ASIC)进行加速;第五类是多媒体处理和云游戏场景。在高清视频转码、视频图像渲染、图像超分辨率等场景,为获得高吞吐和低延时,异构算力不可或缺;最后一类是云计算,为了让云计算平台可以提供更高的性能、更低的成本,以及满足对基础设施管理的需求,云计算企业逐渐在云中部署更多的异构加速器来加速计算、网络和存储。

为推进异构计算的落地,业界出现了 CPU+GPU、CPU+FPGA 和 SVMS 架构等。CPU+GPU 架构是充分使用 GPU 和 CPU 两者的计算能力,有效提高计算处理性能,降低处理能耗。CPU+FPGA 架构则利用了 FPGA 灵活的可编程性、按需定制和大规模并发延迟低的特点,它在提高 CPU 计算能力的同时,降低了服务器功耗。SVMS 架构则是由英特尔提出的,该公司在 2018 年提出 XPU 愿景:使用多种计算架构充分满足复杂计算需求。具体来说,是由标量 (Scalar)、矢量 (Vector)、矩阵 (Matrix)、空间 (Spatial) 组成 SVMS 架构,可以进行多种异构处理器组合,从而实现高性能处理多种负载。

提升性能,降本增效,快手如何落地异构计算

无论是 CPU+GPU,还是 CPU+FPGA,异构计算只有在实际业务场景中得到落地,才能体现其真正的价值。作为一个超 3 亿日活的短视频 App,快手的异构计算实践颇具代表性。

据了解,快手的推荐系统在大规模复杂业务中面临巨大性能挑战。作为短视频内容平台,内容生产、内容理解、内容分发、内容消费、用户互动这些环节,构成了大规模的复杂业务,对算力产生更多元的需求。为破解算力瓶颈难题,快手推出了可实现异构计算的 LaoFe NDP(Latency oriented Fpga engine for Near Data Processing)架构,加速不同场景的计算,并在英特尔硬件上得到最优的性能执行。

以推荐业务场景为例,它需要根据用户画像推荐用户感兴趣的内容。首先,从海量信息中选择与用户特征相关的结果,再通过“排序”划分内容的优先级别。如何保证任务在这个过程中高效、准确地完成?参数服务器至关重要,因为它负责存储、处理海量数据特征以及排序模型参数。

快手推荐系统采用计算与存储分离的架构模式

为应对海量数据冲击,快手的推荐系统采用计算与存储分离的架构模式。参数服务器属于存储型服务,该服务要保存和实时更新上亿规模的用户画像、数十亿规模的短视频特征、以及千亿规模的排序模型参数。并且,它不仅受限于容量和带宽,而且还要支撑每秒数亿次的 KV 请求,这会消耗大量 CPU 资源,成为其性能的主要瓶颈。

要解决这个问题,最佳方案是采用异构计算,使用不同计算设备处理不同负载。通过使用英特尔® 至强® 可扩展处理器、英特尔® Agilex™ FPGA 和英特尔® 傲腾™ 持久内存,借助软硬一体化、领域专用加速器设计,使快手的 LaoFe NDP 近数据架构在计算体系结构上实现创新,从而做到网络、存储、计算三重加速,为各个业务系统提供低延迟、高并发、高吞吐、低总体拥有成本的基础资源。

快手 LaoFe NDP 异构计算架构

在笔者看来,网络、存储和计算的三重加速真正体现出异构计算带来的价值。

在网络层面,LaoFe NDP 架构将 CPU 收发网络数据操作,卸载到 FPGA 上。Client 发送的请求包直接发送给 FPGA。相比 gRPC 基于 TCP/IP(网络协议栈),功能过于复杂,性能和延时方案无法保证。而使用基于 FPGA 实现了一套 SD-RDMA 协议,通过应用层添加字段的方式,保证了类似 gRPC 的可靠性传输,大幅降低了请求延时。

在存储层面,LaoFe NDP 架构将 CPU 存储操作也卸载到 FPGA 上。为了最大程度发挥 FPGA 的能力,快手基于通用 KV 存储场景定制了一套易于 FPGA 访问的 KV(Key-Value)引擎。同时,其支持 SSD/英特尔® 傲腾™ 持久内存/DRAM 内存、基于 hash 的 Key-Value 存储引擎,能够有效加速存储性能。通过实战检验,使用 KV 查表的吞吐相比 CPU 方案提升 5 倍以上。

在计算方面,LaoFe NDP 的计算加速仰仗 FPGA 作为领域专用处理,可以更有效地并行处理数据,提供更高效的内存层次结构与定制化的执行单元,从而支持机器学习、深度学习和大数据等场景。英特尔® FPGA 具备富于弹性的可编程硬件能力,延时低且可精确控制,单位算力功耗低、片上内存大,适合于快手延时要求高、批处理比较小、并发性和重复性强的应用场景。

快手 LaoFe NDP 架构在英特尔软硬件优化下,最终实现了:一、系统吞吐显著提升,延时显著降低,参数服务器的吞吐性能提升了 5-6 倍,整体请求延时降低了 70%-80%,提供更好的用户体验;二、更好地控制 TCO,FPGA 的强大性能提供远超传统方案的吞吐能力,仅需部署少量的服务器就能满足特性的性能指标要求,替代比可达到 1:5,有效降低 TCO;三、降低性能抖动,基于 CPU 的软件方案常因需要进行高频率更新而出现性能抖动,而通过 FPGA 来处理负载,能大幅减少性能抖动。

异构计算的困境

通过快手的异构计算实践可以发现,异构计算在未来有很大的发展潜力和空间。不过,企业在采用异构计算前,还需认识到异构计算所存在的技术难题:

  • 一是异构计算产品需要面对不同的系统架构、指令集和编程模型,需要降低多样计算带给软件开发者的难度;
  • 二是异构计算芯片产品除了要在芯片设计层面实现突破之外,还需要解决在芯片制造和封装过程中不同结构之间的适配和升级问题;
  • 三是异构计算要实现性能的多样性合一,使其同时满足人工智能训练、推理、图像视频处理等各种不同的需求。

尤其是异构计算带来的硬件复杂性,对编程人员提出了严苛挑战。不同开发框架之间的性能表现、兼容性,以及学习成本一直是影响开发效率的主要因素之一,复杂的开发环境、无法同步更新的框架导致开发者要花费不少精力去自行解决问题。这些都依赖于生态链的建设。标准的制定与推广,语言、编译器、框架、运行库等的支持,都不是易事。

虽然这事不简单,但是厂商已有所行动,推出各种解决方案,其中,英特尔的 oneAPI 值得一提。作为统一的软件编程架构,oneAPI 支持多种异构计算单元,不仅有英特尔硬件,而且还包括其他厂商的硬件。同时,它提供开放、统一的编程语言 DPC++。并且,oneAPI还提供基于 API 的高性能库,能在多种异构平台上运行并提供极高的性能,其中很多库将开源,为进一步扩展增加新功能提供可能。

如今,oneAPI 正在被越来越多的独立软件提供商、操作系统供应商、终端用户和学术界采用,它提供的跨架构的兼容性,也大大地提高了开发人员的生产力和创新能力。

写在最后

以前,是以计算为中心,指令控制流驱动计算;未来,将以数据为中心,数据流驱动计算。在进入以数据为中心的时代后,CPU、GPU、FPGA 等不再像以往一样可以独当一面,传统的通用架构已远不能满足当下的需求。唯有多种架构之间的组合方能应对处理海量、密集数据的工作负载需求。
如今,行业正转向以异构为基础的技术新生态,异构计算成为新的全球竞争点。纵观业界,主流芯片供应商都在大力布局异构计算,试图构建更完整的生态。

异构计算将越来越精细地拆分特性不同、要求不同的工作负载,然后逐渐统一化、标准化。未来,异构计算会根据不同的场景、数据种类和处理的延时以及带宽要求进行设计。在这个新的发展趋势下,除 CPU 和 GPU 外,将有更多种类的“PU”出现。英特尔的 XPU 战略在这样的背景和趋势下优势愈发显著。其不断完善的产品线横跨 CPU、GPU、FPGA 和 IPU 等领域,且秉持“软件优先”理念,通过 oneAPI 面向异构计算提供统一的、可扩展的编程模型,软硬并进。此外,在全新的 IDM 2.0 战略引领下,英特尔正在架构和制程方面加速迭代演进,携手合作伙伴,更好地应对未来海量、多变的异构计算需求。

想了解更多关于异构计算的知识?扫描下方海报二维码,观看英特尔联合国际学术期刊《科学》共同推出的“架构师成长计划”第六期《异构计算 数据中心“芯”变革》精彩回放,了解更多技术干货。