软件定义AI算力:解锁AI算力的新时代

从1964年发明CPU——即IBM System 360发布的那一年算起,已经过去60年,我们已经从传统的CPU算力时代跨越到了以GPU算力为代表的加速计算时代。尤其是随着大模型的广泛应用和AIGC技术的崛起,行业对GPU等AI算力的需求呈现出爆炸式的增长。据华为预计,到2030年AI算力将增长500倍,全球AI算力将超过105ZFLOPS(FP16),AI算力已经成为数据中心发展的最大驱动力和决定性因素。

如何灵活高效的使用和管理这些AI算力,也是整个行业面临的挑战和难题。

1 智算中心业务多样性

随着决策式AI到生成式AI的演进,AI任务从训练到部署的多样化发展,以及从小模型到大模型的持续迭代,智算中心的业务变得越多元化:

图1 业务多元化与AI算力

1)任务类型差异化。不同类型的AI任务,如机器学习、深度学习、图像处理等,对算力资源的需求各不相同。这些任务可能需要不同的处理器、内存、存储等硬件配置,导致算力资源难以统一管理和调度。

2)任务规模差异化。不同规模的任务对算力资源的需求差异很大,而当前缺乏统一的标准来指导算力资源的分配。这导致小规模任务可能占用过多资源,造成浪费,而大规模任务可能因资源不足而影响计算效率。

3)任务优先级差异化。在实际应用中,高优先级的任务往往能够优先获得算力资源,这可能导致其他任务得不到及时满足,加剧了算力资源的碎片化。

AI业务的多元化对于AI算力资源的使用和管理提出了挑战,具体包括AI算力资源的申请、分配、释放、回收等过程。

2 硬件定义AI算力

目前,AI算力的使用和管理主要依赖于物理机、虚拟机、容器等形态。这些形态虽然在一定程度上提升了算力的灵活性和可扩展性,但仍存在显著问题。

首先,当GPU算力被静态分配给某个计算单元后,即使这部分算力并未被AI应用实际使用,也无法被其他AI应用复用,这不仅导致了算力资源的极大浪费,也限制了AI应用的进一步发展;

图2 GPU静态分配

其次,用户在申请和释放资源的时候需要跟管理员进行沟通,同时管理员也需要经过多次确认之后才能完成资源的分配和回收。特别是在资源比较紧张的时候,如果用户在使用资源的时候发现无法满足应用的需求,则需要重复之前跟管理员的沟通流程,极大的阻碍了组织的业务创新,这种资源的使用和管理方式可以理解成“硬件定义AI算力”;

图3 硬件定义AI算力示意图

最后,不同的资源位于不同的业务孤岛中,无法实现部门间的共享;采购扩容又面临周期长的问题,大大降低了资源的使用效率。

3 软件定义AI算力

软件定义的本质就是通过软件实现业务和资源的解耦,具体实现方式就是通过一个抽象的资源池化层将底层分布在不同服务器上的硬件资源统一调度和管理。

当应用需要访问硬件时,会经过资源池化层的调度分配,最终映射到合适的服务器硬件上。应用不需要考虑最终访问的硬件资源在哪台服务器,也不需要关心自身运行的服务器上是否有硬件资源,所有的这些都是由资源池化层统一处理。

图4 软件定义AI算力技术架构

软件定义AI算力正是借鉴软件定义的思想,同时参考软件定义存储产品的演进路线,为解决AI算力使用和管理面临的挑战而提出的解决方案,能实现AI应用和AI算力加速卡的解耦以及用户和管理员的解耦。

AI应用和AI算力加速卡的解耦:软件定义AI算力的核心技术是将不同服务器的AI算力加速卡通过网络互联组成一个分布式的AI算力服务器集群,在AI算力服务器集群之上构建一个抽象的AI算力资源池化层,AI应用可以通过网络访问到整个资源池里面的AI算力,而不用关心AI算力来自于哪台物理服务器的哪张AI算力加速卡,同时AI应用可以按照自己的需求自助化的对资源池的AI算力进行按需申请、自动释放、动态调整、跨机聚合等操作,赋能业务创新。

用户和管理员的解耦:软件定义AI算力的核心价值是通过软件定义的方式将AI算力资源的申请、分配、使用、回收等过程实现用户和管理员的彻底解耦,从而保证用户可以灵活的申请和使用算力,管理员可以高效的分配和回收算力,同时通过开放的数据面和管理面API,第三方只需要简单的适配对接就可以将软件定义AI算力集成到现有的业务系统。

图5 软件定义AI算力

4 软件定义AI算力实现路径

目前智算中心和数据中心使用的AI算力90%都是GPU,因此我们可以以GPU为例,来分析软件定义AI算力实现路径。我们知道一个完整的GPU系统架构,从底层的硬件到顶层的应用,会分为硬件层、内核态、用户态三个大层次。

硬件层:包含不同厂商GPU硬件,如Nvidia、AMD、海光等,GPU作为附加在计算机当中的设备(device),通过PCIe接口(或其它接口,如SXM4等)和计算机系统连接。

内核态:计算机上运行的软件,如内核态驱动访问硬件时,都会转化成PCIe的TLP报文发送到GPU硬件上,由GPU硬件进行解析并处理。PCIe的TLP报文格式是国际标准,是公开的,但是报文承载的信息是GPU硬件厂商自己定义的,一般都是非公开的。

用户态:出于系统安全、功能方面的需求,从CPU硬件到操作系统设计上明确划分了代码执行的两个运行态,内核态和用户态。在内核态中运行的代码受到操作系统以及CPU硬件的特殊保护,用户态的代码只能通过操作系统预先定义好的标准接口,调用内核态的代码。

图6 GPU系统架构

从GPU系统架构来看,厂商在芯片到应用这五层都可以实现软件定义AI算力,但考虑到框架之间没有统一的API,再加上框架层支撑的AI应用仅仅是整个GPU拆分成应用的一个细分领域,还有云桌面、云游戏、超算、模拟仿真等,因此在框架层之上实现软件定义AI算力不具有通用性。

图7 软件定义AI算力实现路径通用性比较

要实现通用性更好的软件定义AI算力只有从运行时、驱动和芯片三层考虑。

1)如果从芯片层实现软件定义AI算力,因为涉及到硬件设计,所以只能由GPU厂商来做,且只能实现单个GPU的虚拟化,例如英伟达的MIG。

2)如果从驱动层实现软件定义AI算力,则厂商必须完全掌握GPU原生内核驱动的源码以及驱动对外的系统调用API。由于英伟达只开放了内核态的驱动源码,用户态模块还是闭源,因此只有英伟达自己可以在这层支持所有的GPU虚拟化能力。业内还有qGPU和cGPU方案都工作在这层,但是由于缺少完整的接口细节,目前这两个方案都只能支持基于容器环境的虚拟化,无法跨越操作系统支持远程GPU,因此也只能实现GPU的虚拟化。

3)如果从运行时层实现软件定义AI算力,则需要对CUDA、OpenGL、Vulkan等所有的标准接口进行拦截,工作量相对前面两种方案的要巨大得多,有数量级的差异。但考虑到CUDA、OpenGL、Vulkan等接口都是公开的标准化接口,具有开放性和接口稳定性,所以基于这些接口的实现方案具有很好的兼容性和可持续性。另外该方案运行在用户态,因此可以规避内核态代码不应承载过于复杂的功能的工程实践,可以通过复杂的网络协议栈来实现远程GPU的能力,从而支持GPU池化。从部署形态上来说,这种方案对用户环境的侵入性是最小的,也是最安全的,即使发生故障也可以迅速被操作系统隔离,而通过一些软件工程的设计可以有很强的自恢复能力。

综上分析,运行时是实现软件定义AI算力的最佳实现路径。

5 方案实践

趋动科技的OrionX(猎户座)软件定义AI算力解决方案可以帮助客户构建数据中心级AI算力资源池,使应用无需修改就能透明地共享和使用数据中心内任何服务器之上的AI加速卡,目前OrionX已经支持英伟达、海光、寒武纪、昇腾、天数智芯、登临科技、燧原科技等厂商AI加速卡的池化或纳管。

图8 OrionX系统架构

OrionX通过软件定义AI算力,颠覆了原有的AI应用直接调用物理GPU的架构,增加软件层,将AI应用与物理GPU解耦。AI应用调用逻辑的OrionX vGPU,再由OrionX将OrionX vGPU需求匹配到具体的物理GPU。

OrionX架构实现了GPU资源池化,让用户高效、智能、灵活地使用GPU资源,达到了降本增效的目的。软件定义AI算力的核心能力如下

按需分配:资源池内各类算力资源按需挂载,用完立即回收,资源高效流转;

动态调整:只需在容器/虚拟机/物理机等执行环境中声明需要的资源,就可以让AI应用获取到对应的算力,而无需重启执行环境;

远程调用:AI 应用可在资源池任意位置进行部署,无需关注底层物理硬件配置细节;

资源聚合:资源池内各类算力资源通过网络远程调用方式实现资源整合,形成算力资源池,一方面可突破单服务器硬件配置闲置,另一方面可减少资源池内硬件资源碎片;

弹性伸缩:AI 应用可弹性使用资源池内算力资源,无需重启即可改变申请算力资源;

热迁移:支持在线地将AI任务迁移到不同节点,满足数据中心内节点均衡/碎片整理/下线维护等场景需求;

显存超分:支持将多个任务调度到同一张物理GPU卡上运行,即使这些任务的总显存需求超过了单张物理GPU卡的显存大小;

算力超分:支持将多个任务调度到同一张物理GPU卡上运行,即使这些任务的总算力需求超过了单张物理GPU卡100%的算力;

单设备多协议:单个OrionX vGPU能够支持CUDA+OpenGL或Vulkan双协议,同时满足计算+渲染的场景需求;

自定义算力芯片型号:支持管理员自定义算力卡规格,可设置自定义算力卡的名称、显存以及算力;支持AI应用使用自定义算力卡规格,系统自动进行资源的匹配以及AI任务的调度和运算。

6 展望

AI一定会进入千家万户赋能百业,人类社会对算力的需求一定会持续增长,用户永远都希望算力成本越低越好。软件定义技术为数据中心提供了一种灵活、高效、便捷和极致性价比的AI算力解决方案,用户可灵活地进行资源申请、调整和释放,管理员高效的资源分配、供应和回收;第三方业务系统便捷地适配、对接和集成。软件定义AI算力大大地促进了AI应用生态的繁荣和发展,也进一步加速了AI时代的到来。

参考文献:

1. 百度百科-软件定义存储https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89%E5%AD%98%E5%82%A8/17583144?fr=ge_ala

2. 百度百科-软件定义网络

https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89%E7%BD%91%E7%BB%9C?fromModule=lemma_search-box

3. 百度百科-软件定义

https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89/18818421

4. 【干货】什么是软件定义存储,收藏级别~

https://mp.weixin.qq.com/s/zEUHWrb8Iq4pdqhv0-i_6w

5.华为发布《数据中心2030》报告:AI计算算力成为数据中心发展的最大驱动力和决定性因素

https://baijiahao.baidu.com/sid=1777571264042708490&wfr=spider&for=pc

6.联手体系结构专业委员会:“用户态GPU池化技术”术语发布 | CCF术语快线

https://mp.weixin.qq.com/s/BoqIrRdDzYSGdVgma641wQ

7.GPU从虚拟化迈向池化:趋动OrionX产品的创新之路

https://mp.weixin.qq.com/s/a68A

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.29爬虫修复

1、加密算法sha、与时间加密。f12前端页面,所有文件中查询到指定字段。 2、加锁维护token或jwt之类的凭证,双if嵌套判断 3、熟悉公司整体项目框架,前端、nginx服务器,后端服务器 4、scrapy的爬虫过滤,注意重复url在src…

微短剧出海CPS分销推广影视平台系统搭建思维逻辑介绍

随着国内短剧市场的蓬勃发展,其独特的魅力与影响力已跨越国界,成为海外观众的新宠。这一趋势不仅推动了短剧内容的全球化传播,也为海外市场的CPS(按销售分润)分销模式提供了广阔舞台。连接内容创作者、平台运营者、系统…

HIVE调优方式及原因

3.HIVE 调优: 需要调优的几个方面: 1.HIVE语句执行不了 2.HIVE查询语句,在集群中执行时,数据无法落地 HIVE执行时,一开始语句检查没有问题,生成了多个JOB, …

VMware 的网络模式详解

VMware 的网络模式详解 使用 VMware 创建虚拟机,配置虚拟机网络时,主要有三个选项,分别是桥接模式、NAT 模式、仅主机模式 这三个模式到底有什么含义? VMware 是通过虚拟网络,即虚拟交换机,来连接物理机&…

泥球代码是什么,如何预防?typescript例

“泥球代码”(Spaghetti Code)通常是指结构混乱、复杂度高且难以理解或维护的代码。这样的代码往往缺乏清晰的设计和规划,看起来就像一团乱糟糟的意大利面,因此得名。 在软件开发中,避免产生泥球代码是非常重要的&…

angular入门基础教程(五)父子组件的数据通信

组件之间的通信是我们业务开发中少不了的,先了解下父子组件的通信 父组件传数据给子组件 前面,我们学会会动态属性的绑定,所以在父组件中给子组件绑定属性,在子组件中就可以使用这个属性了。 父组件中声明然后赋值 export class AppCompon…

设计模式-备忘录

备忘录(Memento)设计模式是为了保存对象当前状态,并在需要的时候恢复到之前保存的状态。以下是一个简单的C#备忘录模式的实现: // Originator 类,负责创建和恢复备忘录 class Originator {private string state;publi…

智能开关助力酒店管理提升

随着科技的迅猛跃进,智能化浪潮席卷全球,酒店业亦不例外地迎来了智能化转型的新纪元。智能开关,作为这股浪潮中的先锋,凭借其尖端的通信技术和智能控制逻辑,正深刻改变着酒店的运营模式与顾客体验。 它不仅赋予了酒店远…

如何理解tcp的三次握手?

TCP(传输控制协议)是一种网络通信协议,用于可靠地传输数据。它是互联网协议套件(TCP/IP)中的一部分,负责将数据分割成小块(称为数据包),通过网络传输,然后在接…

IP地址证书签发之后可以绑定到指定端口访问吗?

IP地址证书概述 IP地址证书,也称为IP SSL证书,是为互联网协议(IP)地址提供安全认证的一种证书。它包含公钥、所有者信息以及由可信的证书颁发机构(CA)签发的数字签名。通过使用公钥基础设施(PKI),IP地址证书确保了网络实体之间的信任和验证。…

语音合成大模型汇总

https://www.speechhome.com/blogs/news/1810969234071752704 阿里CosyVoice: https://github.com/FunAudioLLM/CosyVoice NeuCo v2声音克隆首发,一键AI翻唱,无需训练!在线版SoVITS,在线使用,只需10秒音频…

React基础知识 精简全面 推荐

这篇博文主要对一些刚入门react框架的同学,以及对react基本知识进行巩固的,最后就是精简一下基本知识,以方便自己查看,感谢参考,有问题评论区交流,谢谢。 目录 1.JSX 2.Props 和 State 3.组件生命周期…

基于JAVA的美妆购物商城系统/美妆销售系统的设计与实现/美妆网站的设计与开发/在线美妆购物平台

摘 要 本毕业设计的内容是设计并且实现一个基于SSM框架的美妆购物商城系统。它是在Windows下,JSP技术,以MYSQL为数据库开发平台,Tomcat网络信息服务作为应用服务器。美妆购物商城系统的功能已基本实现,主要包括用户、商品信息、…

2024电赛H题参考方案(+视频演示+核心控制代码)——自动行使小车

目录 一、题目要求 二、参考资源获取 三、参考方案 1、环境搭建及工程移植 2、相关模块的移植 4、整体控制方案视频演示 5、视频演示部分核心代码 总结 一、题目要求 小编自认为:此次H题属于控制类题目,相较于往年较为简单,功能也算单一&…

科普文:『 码到三十五 』Java微服务中Token鉴权设计的4种方案

吐槽~~~~~~~ Java微服务中Token鉴权设计的几种方案: 1. JWT鉴权 「概述」:JWT是一种用于双方之间安全传输信息的简洁的、URL安全的令牌标准。它基于JSON格式,包含三个部分:头部(Header)、负载(Payload&a…

ubuntu Ubuntu 20.04.6 LTS 安装vtk 报错缺少opengl

ubuntu编译9.3.0 vtk报错 -- Could NOT find OpenGL (missing: OPENGL_opengl_LIBRARY OPENGL_glx_LIBRARY OpenGL) CMake Error at CMake/vtkModule.cmake:4793 (message): Could not find the OpenGL external dependency. Call Stack (most recent call first): CMake/vtkMo…

typescript 断言

/* 断言 确定后期一定是某种格式 可用于表单大对象初始化是空,赋值时有具体字段。前期断言是会是某种格式 */interface obj {name: stringlocation: stringage?: number }// 会报错 // let data: obj { // // } let data: obj {} as obj; // 断言data会有obj里…

PHP框架详解之Symfony框架

一、框架概述 起源与开发者:Symfony由SensioLabs(现为Symfony公司)开发,最初由Fabien Potencier于2005年创建。功能定位:Symfony通过提供一套可重用的组件和标准化的框架,帮助开发者快速构建Web应用、API、…

如何将WordPress文章中的外链图片批量导入到本地

在使用采集软件进行内容创作时,很多文章中的图片都是远程链接,这不仅会导致前端加载速度慢,还会在微信小程序和抖音小程序中添加各种域名,造成管理上的麻烦。特别是遇到没有备案的外链,更是让人头疼。因此,…

Monte Carlo Tree Search Boosts Reasoning via Iterative Preference Learning

Monte Carlo Tree Search Boosts Reasoning via Iterative Preference Learning Github:https://github.com/YuxiXie/MCTS-DPO 一、动机 大语言模型在偏好对齐环节可以提高模型的性能。目前有诸多工作尝试将偏好对齐通过迭代的形式进行改进: It involves a cycle …