HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 2022-09-23
    北京
  • 本文字数:4369 字

    阅读完需:约 14 分钟

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

算力助推经济增长,成为数字经济发展新引擎。今年 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 战略引领下,英特尔正在架构和制程方面加速迭代演进,携手合作伙伴,更好地应对未来海量、多变的异构计算需求。


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



2022-09-23 15:046422
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 356.2 次阅读, 收获喜欢 1800 次。

关注

评论

发布
暂无评论
发现更多内容

java面向对象和常用类练习题(StringBuffer、Data,java基础案例教程第二版

Java 程序员 后端

java面试常被问到的 JDK 命令,你知道几个?,2021最新Java面试笔试

Java 程序员 后端

Java集合笔记一 —— Collection,用了这么多年分页PageHelper

Java 程序员 后端

Java面试题整理《基础篇》,线程池参数面试题

Java 程序员 后端

Java高并发编程课后总结,Java程序员必备书籍

Java 程序员 后端

Java真的要凉了吗?,工业互联网架构师

Java 程序员 后端

Java程序员跳槽之旅,离开京东,12面面试回顾和一点经验分享

Java 程序员 后端

Java面试题超详细整理《多线程篇》,kafka架构和原理

Java 程序员 后端

Java程序员极力推荐的springboot全家桶干货系列,运维nginx面试题

Java 程序员 后端

Java程序员经典面试题集大全 (六),springboot原理图

Java 程序员 后端

JAVA线程池源码之深入状态值分析| Java Debug 笔记,java原理面试题

Java 程序员 后端

Java虚拟机的历史,java编写视频播放器

Java 程序员 后端

Java进阶面试合集笔记——19个技术栈,35岁以后的Java程序员出路在哪里

Java 程序员 后端

Java面试逐个突破:OOP(面向对象编程,java开发零基础就业班

Java 程序员 后端

Java程序员必须了解的JVM性能调优知识,全都在这里了,java框架常见面试题

Java 程序员 后端

Java程序员经典面试题集大全 (六)(1),javaee教程视频

Java 程序员 后端

Java面试知识点解析——JVM篇,java集合容器面试

Java 程序员 后端

Java面试题目大汇总(附参考答案),牛客初级项目百度网盘

Java 程序员 后端

Java架构师面试题系列之Mybatis面试专题(36题,含详细答案解析

Java 程序员 后端

java程序员必须掌握的spring boot—你真的了解了吗,java基础入门第二版第三章答案

Java 程序员 后端

Java程序员:面试字节跳动被问算法 多亏我扛下来了,2021最新Java高频精选面试题讲解

Java 程序员 后端

Java语法糖,mybatis的实现原理

Java 程序员 后端

java集合笔记二 —— List集合,java运行原理

Java 程序员 后端

模块二作业:微信朋友圈高性能复杂度

dean

架构实战营

Java详解:如何实现一个-redis-缓存服务,面试官手里那些秀你一脸的求质数大法

Java 程序员 后端

Java语言新特性?封印类,mybatis教程pdf下载

Java 程序员 后端

Java面试题总结(乱序版,2020-09-29,3分钟教会你什么线程安全以及如何实现线程安全

Java 程序员 后端

Java架构师面试之Netty面试专题及答案(共10题,含详细解答

Java 程序员 后端

Java架构进阶笔记:一不小心就死锁了,怎么办,java区块链项目实战百度云

Java 程序员 后端

Java泛型你了解多少,springboot常见面试题

Java 程序员 后端

Java程序员怎么写简历?你这样介绍项目经验面试官会对你刮目相看

Java 程序员 后端

算力新生态,透视异构计算的机会和挑战_英特尔_万佳_InfoQ精选文章