<成果标题> -1- 中国联通算力服务原生 白皮书 中国联通研究院 下一代互联网宽带业务应用国家工程研究中心2023年5月 版权声明 本报告版权属于中国联合网络通信有限公司研究院,并受法律保护。转载、摘编或利用其他方式使用本报告文字或者观点的,应注明“来源:中国联通研究院”。违反上述声明者,本院将追究其相关法律责任。 编写单位:中国联通研究院/下一代互联网宽带业务应用国家工程研究中心 编写组成员:唐雄燕,曹畅,张岩,杨洋,霍龙社,崔煜喆,王施霁,曹云飞,马力俊,徐治理,王立文 合作单位:浪潮通信信息系统有限公司,英特尔,深圳市遇贤微电子有限公司,飞腾信息技术有限公司 前言 近年来,伴随着数字经济的蓬勃发展,互联网、大数据、人工智能同各行各业深度融合,产生的数据量和计算量呈指数爆发,对于目前海量、分散的应用场景,数据的处理与分析需要强有力的算力提供支撑,加速了“云、边、端”为主的算力资源的高效协同,同时服务形态也由最初的云服务向算力服务演进,促进算力技术发展走向多架构并存的道路。 异构算力广泛应用带来了软件层面以及硬件、芯片层面新的技术问题,为算力资源的高效利用以及应用的快速发展提出了挑战,亟需一套解决方案来屏蔽异构算力、异构代码和异构运行环境差异所引入的软硬件兼容问题,以便提高资源利用率,降低开发以及维护成本。基于此背景,本白皮书提出了算力服务原生技术来解决上述挑战。 本白皮书首先分析了算力技术的发展趋势及当前应用多样化下异构算力发展面临的挑战,之后对算力服务原生的定义内涵、总体架构、关键技术进行了分析,并就算力服务原生与云原生、算力网络、人工智能的关系和当前业界的探索实践进行详细介绍,期望为算力服务产业发展起到抛转引玉的作用,并通过发展算力服务原生技术,以实现“一套代码全网通用”的目标,呼吁与业界合作共建、联合推动算力服务原生统一的标准体系,并繁荣开源生态。 目录 1.算力服务原生产生背景6 1.1.算力技术的发展趋势6 1.1.1.算力需求剧增,异构算力泛在部署6 1.1.2.应用场景多样,算力生态螺旋发展7 1.1.3.服务形态演进,由云服务到算力服务8 1.2.算力服务原生概念辨析10 2.算力服务原生总体架构及关键技术12 2.1.算力服务原生总体架构12 2.2.算力服务原生关键技术14 2.2.1.代码服务化14 2.2.2.服务适配15 2.2.3.应用适配16 2.2.4.算力服务原生编程模型16 2.2.5.异构算力运行时17 2.2.6.异构算力池化19 2.2.7.异构算力互联20 3.算力服务原生与周边技术关系22 3.1.算力服务原生与云原生的关系22 3.2.算力服务原生与算力网络的关系23 3.3.算力服务原生与人工智能的关系24 4.算力服务原生业界探索26 4.1.算力服务原生在产业中应用26 4.1.1.基于算力服务原生的算网资源调度26 4.1.2.基于算力服务原生的算网能力开放27 4.1.3.算力服务原生的典型应用场景28 4.2.中国联通算力服务原生探索和实践29 4.3.算力服务原生业界发展情况31 4.3.1.TensorLayerX31 4.3.2.英特尔32 4.3.3.遇贤微电子33 4.3.4.飞腾34 4.3.5.浪潮34 4.3.6.NVIDIA35 5.算力服务原生愿景与展望37 缩略语39 参考文献40 1.算力服务原生产生背景 1.1.算力技术的发展趋势 1.1.1.算力需求剧增,异构算力泛在部署 互联网的高速发展使得万物互联成为可能,由此产生的数据量和计算量呈指数爆发,而海量数据的处理与分析需要强有力的算力提供支撑。当前,大模型、元宇宙等相关技术实现依靠超强算力支撑,这对现有的技术和未来的发展都提出了很大的挑战。对于算力需求的日益剧增,需要云、边、端算力实现高效协同。对于目前海量、分散的应用场景,仅由数据中心内部或者终端的高效算力处理已无法满足业务需求。近年来由于边缘计算、分布式计算等新型计算业态的出现,新型网络连接形态更好的实现了不同数据中心之间的连接,因此数据中心的云资源部署逐渐从传统集约化为主的中心云方式,主要向中心云和边缘计算之间的协同调度方式演进,而随着未来移动互联网的发展,正逐渐促进了包括终端侧的泛在计算的协同和发展,形成了以“云、边、端”为主的新型算力资源协同和发展,围绕三者结合实现的泛在计算构建了不同层级的算力组成,能够实现低时延、低成本等效果。并且结合大数据技术和智能算法,能够实现在不同层级的算力满足不同的场景需求,即,云计算满足大体量数据分析和算法训练,边缘计算满足敏捷接入和本地计算,而端侧算力侧重现场体验和端侧智能等要求。 图1人工智能发展带来泛在算力需求 算力的需求促进了算力架构的多样性和算力性能的不断提升,在不同的应用场景中,异构算力协同处理发挥最大化的计算效力。尤其对于近年来新兴发展起来的人工智能应用场景,其算力需求是贯穿云端到边缘再到端侧的泛在算力需求,如何使遍布在云边端泛在部署的异构多样算力资源满足繁杂多样的计算需求,驱使业务应用能平滑的在各级算力资源上进行流转运行,充分利用巨量算力资源,是当今业务发展的关键点。 1.1.2.应用场景多样,算力生态螺旋发展 算力最初的形态为通用CPU,随着信息技术的发展,为满足日益丰富化的应用场景,多类芯片相继涌现,算力形态呈现螺旋式发展状态。 20世纪80年代随着互联网的诞生,各类网络新媒体应用需求大幅涌现,加速了CPU的迭代演进,进入通用算力的蓬勃发展时期,CPU的运算速度由最初的5MHz达到了33MHz和66MHz。但当前CPU的架构已经相当复杂, 并且真正有效计算在CPU整体计算功耗中只占据10%左右,所以通用架构的 CPU性能不足,适合计算密度不高的使用场景。 随着AI、网络虚拟化等场景的发展,通用CPU已经无法满足运算性能的需求,专用芯片逐渐进入大家的视野。ASIC技术使得芯片可以根据应用的需求进行定制。ASIC芯片集成各种功能模块,是为了某种特定的需求而专门定制的芯片。所以ASIC与通用芯片相比,具有体积小、功耗低、计算性能高、计算效率高、芯片出货量越大成本越低的优势。 随着深度学习,科学计算应用场景不断扩大,算法多样性等因素,针对特定算法和流程定制的ASIC无法满足业务需求,同时CPU性能不足,英伟达(NVIDIA)推出了图形处理器(GPU),但由于GPU同样为特定应用程序或任务而设计,价格仍旧高,且由于专用性,引入各类软硬件的适配问题。2008年,提出通用GPU概念,减少了取值、译码开销,具有很强的通用性,以NVIDIA为代表的GPU厂商,培养了非常好的GPU生态系统,为用户提供了非常方便的开发环境。 2003年芯片性能提升的趋势已经放缓,2015年之后,单一芯片的性能提升越来越难,摩尔定律逼近极限,工艺红利逐渐消失。计算机体系架构领域低垂的果实早已被摘尽,专用算力虽然满足不同场景中的应用需求,但带来收益的同时也带来系统“碎片化”的挑战,各厂商不断围绕自身芯片架构构筑各自的软件生态。随着高性能计算、图像处理、人工智能等应用场景的增加,芯片产业的发展等,未来将会是专用算力与通用算力并存的形态。 1.1.3.服务形态演进,由云服务到算力服务 当前,以应用通用算力为主的云计算技术已成为赋能业务数字化转型的 关键,但随着企业数字化程度不断加深、用户需求的日益增加、算力云边端三级部署以及多样化异构算力的蓬勃发展,促使用户对算力感知、度量、利用率提升等方面需具备更高的要求,云服务也逐渐向算力服务演进。 算力服务除通用计算外,还包括智算、超算、量子计算、个人电脑和移动终端等算力,为满足多样化需求下的异构算力融合使用诉求,算力服务以异构算力为算力设施供给,以算力网络为连接,以多种计算技术为支撑,将异构算力统一输出管理,并与人工智能、区块链等技术交叉融合,将算力、存储、网络等资源统一封装,通过服务形式(如API)进行使用。 图2服务形态演进,云服务到算力服务 在向算力服务演进的过程中,算力服务的自治能力1需要具有低/无代码开发功能,并能在多种模式(云上、云下、混合模式)下部署,以此降低代码开发和应用部署门槛,使开发者聚焦业务自身。随着云原生技术的不断发展,为应用在多模式算力下的部署提供了支撑,但由于异构算力自身架构差异导致的底层指令不同,以及当前软件工作模式与算力的量身定制等问题,仍无法 1自治能力:通过自治算力服务框架的完全自动、自愈、自优、自治的基础设施,实现客户对IT运维无感知、尽量少的投注精力在IT基础设施、IT保持足够的稳健,足够的鲁棒,进而不需要去关注和等待。 真正实现基于异构算力部署应用,既需要软件维度进行业务功能编写,又需要在算力维度执行转换为机器指令后的业务逻辑,同时也需要网络支撑资源间通信、用户交互等。因此,要实现真正从代码到应用都屏蔽资源架构的差异,不仅仅要求面向算力服务软件的能力支持,同时面向算力服务基础设施,需要对异构算力进行统一抽象。如需要对各种编程语言(Java、Python等),各种工具平台(PaddlePaddle、PyTorch等)等编写的代码进行兼容,提供统一的封装方式,实现无差别接入;对异构算力进行统一化度量,解决软件层面以及硬件、芯片层面新的技术问题;同时,应用异构互联的网络将硬件与硬件、硬件与软件、软件与用户进行互联互通,达到“一码通用”2的低/无代码软硬件生态,这也正是算力服务原生希望实现的目标。 1.2.算力服务原生概念辨析 本白皮书所叙述算力服务原生技术的目标是:基于异构算力基础设施,面向应用、模型、代码在不同异构算力资源池间部署的使用场景,解决异构算力代码不通用、算力服务化成本高等问题,提高算力在各类场景下的应用效率。 算力服务原生是指屏蔽异构代码和异构运行环境间的差异,将一套应用 代码封装为规范化的互联网服务,并可部署至任意位置和任意类型的算力上,供用户使用规范化互联网接口随时随地调用和消费。在此理念下,算力服务 2一码通用:一套代码,在不做任何修改或少量修改下,可以在任意算力下进行部署并对外提供服务。 原生应实现大规模异构计算资源的统一输出,更加普适性地满足不同量级或不同硬件架构下的算力需求。算力服务原生要统一算力输出的服务化标准, 促进算力服务标准化,避免软件被固定形式的算力需求所捆绑,实现算力应用的标准化落地。 面向算力服务软件,算力服务原生将所有应用代码进行服务化封装,为 用户提供统一规范化的服务访问接口和模式,使得所有应用代码(及其依附的算力设施)能够以服务的形式被用户所访问和使用,实现“代码即服务”、“算力即服务”,简化普通用户使用和消费应用代码和算力设施的操作和模式。 面向算力服务设施,算力服务原生屏蔽应用异构算力引入的复杂软硬件 差异,实现同一应用同一套代码、在无需改动的条件下,即可自动适配所有厂家的所有算力设备,应用在异构算力间无感知迁移,达到一套代码,全网通用的目的。 2.算力服务原生总体架构及关键技术 2.1.算力服务原生总体架构 从应用对外提供服务所需的技术能力支撑维度,认为算力服务原生由软件到硬件自顶向下可分为5层,即应用层、服务层、算力抽象层、异构算力池化层以及设备层。其中算力服务原生技术集中在:服务层、算力抽象层、异构算力池化层。 图3算力服务原生总体架构 (1)服务层 服务层维度的算力服务原生,旨在达到代码即服务,算力即服务的目的,所谓“代码即服务”,就是指开发者开发出一套应用代码之后,随即变成可部署至任意位置的规范化互联网服务,供用户使用规范化互联网接口随时随地调用和消费。由于服务化后的应用程序是依附在算力资源(设备)上运行并向外提供服务的,因此又达到了“算力即服务”的目的。 (2)算力抽象层 算力抽象层是由算力服务原生编程模型和异构算力运行时组成,其中算力服务原生编程模型基于原生算力统一API、原生编程模型范式以及编译优化部署工具,提供了一种统一的编程方式,开发者可以使用一种或多种高级语言进行应