使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能

这篇具有很好参考价值的文章主要介绍了使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文分享自华为云社区《使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能》,作者:云容器大未来。

AI 技术现状及发展趋势

过去十余年,依托全球数据、算法、算力持续突破,人工智能全面走向应用,已成为社会生产生活的支柱性技术。2020年后,当自动驾驶、人脸识别等热门应用发展逐渐放缓、社会对人工智能整体发展预期日益冷静时,大模型技术潜力的释放以最振聋发聩的方式宣告了人工智能第三次高速发展期远未结束,当前正是攀登发展高峰的关键时期。

尽管人工智能技术成熟度正在不断提高,但目前众多企业进行人工智能应用仍然面临着AI应用部署存在困难、投入产出比不达预期等问题。我们认为,企业通过配备适宜于AI开发的高性能软硬件基础服务,有望能够利用底层技术的复用和算力资源的灵活配置优化AI开发和部署流程,提升AI的价值创造能力。

大模型飞速发展,算力需求不断提升,高效利用人工智能芯片成为新的技术焦点

芯片作为算力基础设施,是推动人工智能产业发展的动力源泉。随着人工智能算法的发展,大模型、视频图像解析、语音识别等细分领域算力需求呈爆发式增长,通用芯片已无法满足需求。由于GPU比CPU更适合处理企业数据中心和超大规模网络中AI和机器学习所需的许多计算,数据中心对GPU的需求一直不断增长。

在实际应用人工智能的过程中主要面临基础设施、AI算法及数据等方面的阻碍。在基础设施方面,企业的IT基础设施在海量数据参与运算和采取分布式架构的条件下可能面临GPU算力不足的问题,从而降低企业AI应用的可用性;在算法训练推理领域,以“大模型”为代表的人工智能算法模型体现出模型参数的数量不断增加的趋势,高度复杂化的模型融入应用程序后可能带来训练、推理框架的适配难度的增加,而在交付和部署后对模型的修改也会给用户带来服务中断等问题。为顺应AI“大模型”时代的发展,亟需解决如下技术挑战:

  • 提升GPU资源率:ChatGPT推动AI大模型进入万亿参数时代,远超单GPU芯片能力,训练框架需要将训练任务分发至不同GPU分别运行,并在GPU间共享结果,大规模的GPU集群应运而生;在当前GPU算力稀缺且价格高昂的背景下,如何统一管理数据中心构建规模GPU集群并汇聚分散的GPU算力,根据大模型任务按需分配GPU算力,提升整体的GPU算力资源利用率,一直是云计算AI领域关注的技术焦点;
  • 统一的AI算力调度平台:近几年人工智能快速发展, 各种深度学习框架不断涌现,谷歌、微软、亚马逊和Meta等巨头, 推出了TensorFlow、CNTK、MXNet、PyTorch和Caffe2等深度学习框架,百度、华为推出了 PaddlePaddle(飞桨)、MindSpore,中科院计算所、复旦大学研制了 Seetaface、FudanNLP;面对众多AI开源框架及组件,亟需统一的调度平台降低AI训练任务的部署复杂性、提升AI训练、推理任务效率。

UCS (On-Premises) 搭载 xGPU&Volcano 智能调度引擎,加速数据中心 AI 计算

华为云分布式云原生UCS服务,是面向分布式云场景下的新一代云原生产品,提供UCS (Huawei Cloud)、UCS (Partner Cloud)、UCS (Multi-Cloud)、UCS (On-Premises) 以及UCS (Attached Clusters) 等产品,覆盖公有云、多云、本地数据中心、边缘等分布式云场景。其中,华为云UCS (On-Premises) 服务是在大规模分布式、高安全合规、高性能的互联网应用驱动下,产生的新一代集开发运维、发布管理为一体的云原生平台,支持将容器管理能力延展至用户数据中心,提供云上云下一致的操作体验。针对用户在本地本地数据中心AI计算的诉求,用户可通过UCS(On-Premises)提供的GPU虚拟化、AI任务管理及调度能力,轻松应对大模型时代的GPU资源利用率及统一的AI框架调度平台的技术挑战:

  • GPU资源利用率提升:随着大模型爆发式发展,金融、制造、互联网等行业纷纷构建行业大模型,需要采购大量的GPU资源满足业务诉求,但是在实践调研发现,很多AI服务虽然使用GPU,但是GPU的利用率普遍不高(显存平均小于30%,GPU算力小于1%),为了充分利用紧张而宝贵的GPU资源,华为云通过GPU虚拟化、华为云云原生操作系统HCE(Huawei Cloud EulerOS)等核心技术,提供GPU的显存、算力隔离能力,促进不同的AI任务可充分使用单张GPU,充分压榨GPU的算力资源,并结合高速网络,促进AI任务队列对GPU资源的充分共享,提升IDC的整体GPU资源利用率;
  • 统一的AI算力调度平台:结合华为云智能调度引擎volcano、智能洞察引擎等能力,快速构建云原生AI基础设施平台,支持Tensorflow、Pytorch、MxNet、MindSpore等通用AI训练、推理框架及丰富的AI调度策略,提升分布式训练的能力,同时基于云原生技术的开发集成及部署,结合底层硬件基础设施,构建“应用+资源”感知调度能力,促进AI应用及核心业务应用的共同运行,帮助企业敏捷、高效、安全地利用数据进行大模型应用开发,并在应用部署过程中实现成本优化和灵活的版本控制。

华为云xGPU技术,原生兼容AI容器应用,实现GPU算显隔离、故障隔离

GPU虚拟化技术从2000年代初期硬件虚拟化到基于API的虚拟化术,再到完全虚拟化和基于容器的虚拟化的发展,在云计算、AI领域扮演着越来越重要的角色,无论GPU技术怎样发展,其目的都是在提高虚拟化的性能、隔离性及用户体验,归纳起来,GPU虚拟化技术在大模型时代,均需要解决资源共享隔离、算力隔离、显存隔离、故障隔离的场景问题:

  • 整体资源共享:任务A独占GPU资源,但只用了GPU20%的算力资源,30%的显存资源,任务B排队准备,无GPU资源可用,导致超70%的GPU处于空闲状态,后续的任务只能等待;
  • 算力隔离:任务A与任务B共用一块GPU资源,由于任务A对算力使用频繁波动,任务B无法获取充足的算力资源,导致任务B计算超时;
  • 显存隔离:任务A和任务B共用共用一块GPU资源,按照程序设计,任务A使用8G显存,任务B使用6G显存,某一时刻,任务A图像占用10G显存,导致任务B运行失败,故障退出;
  • 驱动故障:任务A和任务B共用一块GPU资源,任务A运行CUDA报错,导致任务B故障退出。

为了在容器场景下充分使用GPU资源,解决上述提到的算力隔离、显存隔离、故障隔离,华为云在HCE(Huawei Cloud EulerOS)内核基础上研发了xGPU技术,针对人工智能场景,实现多个AI容器共用一张显卡,同时具备业务的安全隔离,保障多组任务有效使用同一张GPU物理卡,大幅度提升AI训练任务在UCS(On-Premises)集群的运行体验,目前xGPU能力已经完全落地在UCS(On-Premises)平台之上,如下是整体架构:

xGPU不仅实现单卡GPU虚拟化,还原生兼容kubernetes生态:

  • 深度兼容kubernetes: 当前主流的训练框架像Tensorflow、MxNet、MindSpore等针对kubernetes平台开发了operator,被各大头部互联网及金融机构广泛采用于内部的AI训练平台的关键工具,xGPU技术原生与kubernetes深度兼容,无侵入式修改厂商驱动和代码库,运行时无需替换CUDA库;适配标准的Containerd工作方式,容器业务无需任何改造。
  • GPU资源灵活隔离: xGPU实现了物理GPU的资源任意划分,根据训练任务的配置要求按照不同比例灵活隔离;可从算力、显存两个维度进行细粒度划分,达到MB级显存隔离、5%粒度的算力划分。

xGPU实现的是单卡级别的资源隔离,而AI任务往往是以多组队列的形态进行下发,以Tensorflow任务为例,做单次训练需要运行11个pod(1个PS Pod + 10个 Worker Pod),且需要11个Pod均启动成功,训练任务才可进行,如果因为某一张GPU显存不足导致其中的一个Pod运行失败,就会导致整个训练任务的失败,这样导致的资源及训练成本加大,所以针对AI类训练任务,就需要一个针对kubernetes平台资源的智能调度引擎Volcano。

Volcano兼容主流训练框架,内置丰富AI任务调度算法策略,实现精细化算力资源管理

Volcano 是业界首个云原生批量计算项目,2019年由华为云捐献给云原生计算基金会(CNCF),也是 CNCF 首个和唯一的孵化级容器批量计算项目,并于近期携手11家合作伙伴启动了Volcano社区共建计划。该项目面向人工智能、大数据、HPC场景提供统一的高性能作业管理,支持丰富的高阶调度策略,包括在离线统一调度、AI弹性训练调度、SLA、作业拓扑、Fairness、负载感知、重调度、抢占、回收等;对Spark、Flink、Pytorch、MPI、TensorFlow等批处理工作负载实现统一生命周期管理,作业依赖、作业内任务依赖管理;在细粒度资源管理方面,Volcano支持min-max队列资源管理,提供队列资源预留、多租户资源租借/抢占的动态资源共享等能力;在异构资源管理方面,Volcano 实现 x86、Arm、GPU、昇腾、昆仑等多元算力的统一调度,并提供CPU/GPU 共享的精细化调度能力,用户可根据业务需求灵活搭配资源,实现最高性价比。

Volcano当前广泛的被华为云内外部客户用于生产环境,在华为内部,Volcano被用于流程IT、终端云等核心AI应用场景;其丰富的调度策略Gang-Scheduling、Task-Topology、IO-Aware、NUMA-Aware等在生产环境的应用,大幅提升分布式训练的调度效率,将算力资源池的利用率从20%提升至60%以上,如今Volcano将作为UCS(On-Premises)服务的重要组件,帮助用户在本地数据中心加速AI任务的训练及均衡提升算力资源利用率,如下将着重回顾介绍下Volcano的关键调度策略:

Gang-Scheduling调度策略是volcano-scheduler的核心调度算法之一,它满足了调度过程中的“All or nothing”的调度需求,避免Pod的任意调度导致集群资源的浪费。具体算法是,观察Job下的Pod已调度数量是否满足了最小运行数量,当Job的最小运行数量得到满足时,为Job下的所有Pod执行调度动作,否则,不执行。

如一个训练场景,假设一个由2个ps容器和4个worker容器组成的AI应用程序需要调度到有限的资源上。当默认调度器尝试调度最后一个工作者容器时,如果没有可用的资源,则调度将失败。作业挂起,因为没有最后一个工作者容器应用程序就无法运行。与此同时,已经排定的容器所占用的资源却没有产出任何东西。

Volcano确保了一组相关的容器可以同时排期。如果出于某种原因,不可能将所有容器排成一组,Volcano不会安排这组。在实践中,将一组内部依赖容器部署到有限资源上的情况并不少见。在这些情况下,Volcano是至关重要的,因为组调度消除了由于资源不足而导致的潜在死锁。Volcano显著提高了负载沉重的集群的资源利用率。

分组调度基于容器组,或代码中所称的“jobs(作业)”。使用分组调度,算法检查每个作业,看是否可以调度整个作业。每个组中的容器称为“tasks(任务)”。当可以调度的任务数量超过设定的阈值时,任务将被调度到各个节点上。这个调度过程在代码中称为“bind nodes(绑定节点)”。

Nunma-Aware调度策略是针对那些对cpu参数敏感、调度延迟敏感的计算密集型作业:如科学计算、视频解码、动漫动画渲染、大数据离线处理等具体场景,volcano通过Resource Reporter上报的节点CPU拓扑及POD使用CPU的NUMA分布,提供NUMA-Aware能力将POD调度至合理的CPU上,有效提升任务的执行效率。

Volcano提供了一组不同的调度算法,比如优先级、域资源公平性(DRF)和binpack,这意味着你可以更容易地处理不同的服务需求。例如,你可能希望在部署应用程序时确保DR和中断隔离。使用Volcano,你可以轻松地部署在不同节点上运行相同应用程序的容器,并且每个节点只有一个pod。在另一个场景中,为了确保某些应用程序不会竞争资源,你可能希望避免将它们部署在同一个节点上。Volcano可以帮助你做到这一点。

总结展望

UCS(On-Premises)旨在将云上的服务能力延伸至各行业的客户的本地数据中心,结合volcano的AI作业管理及智能调度能力、xGPU的GPU虚拟化能力,帮助用户快速在IDC构建云原生的AI基础设施,更细粒度的使用GPU资源,让用户聚焦AI的业务开发,最大限度释放AI大模型算力潜能。

参考:

《人工智能标准化白皮书》(2021版)

《人工智能安全标准化白皮书》(2023版)

《华金证券:AI产业化再加速,智能大时代已开启-GPU行业深度报告》

《艾瑞咨询:2021年中国云原生AI开发平台白皮书》

 文章来源地址https://www.toymoban.com/news/detail-661923.html

点击关注,第一时间了解华为云新鲜技术~

 

到了这里,关于使用 UCS(On-Premises) 管理您的GPU资源池,释放AI大模型算力潜能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【深度学习工具】Python代码查看GPU资源使用情况

    在训练神经网络模型时候,有时候我们想查看GPU资源的使用情况,如果使用Ctrl+Shift+Esc不太符合我们程序员的风格😅,如果可以使用代码查看GPU使用情况就比较Nice  话不多说,直接上代码 实现效果

    2024年02月14日
    浏览(38)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

    由于本人水平有限,难免出现错漏,敬请批评改正。 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看 YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制 YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层 YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU YOLOv7训练自己的数据集(口罩检测)

    2024年02月07日
    浏览(61)
  • 使用Piwigo管理您的照片

    什么是 Piwigo ? Piwigo 是一款可以用来管理您的图片集与其他媒体的网站程序。专为组织、团队和个人而设计,有超过 200 个插件和主题可用。从中型图片集到巨大的图库, Piwigo 都能替您省时省力,轻松搞定。 老苏用了群晖自带的 MariaDB 10 数据库。 在 phpMyAdmin 中创建名为 p

    2024年02月06日
    浏览(30)
  • Flink on K8S生产集群使用StreamPark管理

    Flink on Native Kubernetes 目前支持 Application 模式和 Session 模式,两者对比 Application 模式部署规避了 Session 模式的资源隔离问题、以及客户端资源消耗问题,因此生产环境更推荐采用 Application Mode 部署 Flink 任务。下面我们分别看看使用原始脚本的方式和使用 StreamPark 开发部署一个

    2024年02月03日
    浏览(49)
  • Windows10资源管理器使用

    目前Windows系统中的使用较多当属Windows10,资源管理器属于Windows系统中一个常用工具。本文总结了Windows 10 专业版下资源管理器的一些使用技巧。 打开资源管理器后,任意点击资源管理器左侧的文件夹选项[例如点击“本地磁盘(D:)”],然后右键点击资源管理器的右侧的空白区

    2024年02月01日
    浏览(87)
  • unity 性能优化之GPU和资源优化

    众所周知,我们在unity里编写Shader使用的HLSL/CG都是高级语言,这是为了可以书写一套Shader兼容多个平台,在unity打包的时候,它会编译成对应平台可以运行的指令,而变体则是,根据宏生成的,而打包运行时,GPU会根据你设置的宏切换这些打包出来的代码,而不是我们书写那

    2024年02月02日
    浏览(63)
  • unity资源管理方案-YooAsset的使用

    我们在开发项目时,会发现资源管理模块往往在项目架构中扮演着重要的角色,而且一个游戏的流畅性和内存方面的性能优化,往往也能看到资源管理的影子,所以一个优秀强大的资源管理方案对一个项目开发者来说是一个强大的轮子。 YooAsset是一套用于Unity3D的资源管理系统

    2024年01月20日
    浏览(52)
  • Kubernetes学习笔记-计算资源管理(4)监控pod的资源使用量20230219

    前面学了设置资源的requests和limits,这节课学习如何监控资源,根据监控资源使用情况,对requests和limits进行合理配置。 kubelet包含一个agent,名为cAdvisor,它会收集整个节点上运行的所有单独容器的资源消耗情况,这些信息可以通过一个附加组件Heapster来集中统计整个集群的监

    2024年02月05日
    浏览(49)
  • 针对“您的计算机配置似乎是正确的,但该设备或资源(DNS 服务器)没有响应“问题解决

    解决思路: 1.在“开始”中找到“运行”(或者直接【Win】+【R】),然后输入“cmd”进入管理员操作界面。 2.在管理员界面中输入命令:ipconfig/all然后按Enter键确认即可显示WindowsIP配置,在这里我们可以查看我们的DNS服务器地址。  IPv4 地址 . . . . . . . . . . . . :   默认网关. .

    2024年02月07日
    浏览(48)
  • 如何使用Go中的Weighted实现资源管理

    本文将介绍 Go 语言中的 Weighted 并发原语,包括 Weighted 的基本使用方法、实现原理、使用注意事项等内容。能够更好地理解和应用 Weighted 来实现资源的管理,从而提高程序的稳定性。 在微服务架构中,我们的服务节点负责接收其他节点的请求,并提供相应的功能和数据。比

    2024年02月07日
    浏览(94)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包