北京天云融创软件携超智算融合解决方案亮相CCF HPC China 2024大会
2024 年 9 月 24 日至 26 日,第 20 届 CCF 全国高性能计算学术年会(以下简称“CCF HPC China 2024”) 在湖北武汉隆重开幕。此次大会以“华章廿载 新质未来”为主题,由中国计算机学会主办,中国计算机学会高性能计算专业委员会、华中科技大学、上海交通大学承办,中国地质大学(武汉)、北京并行科技股份有限公司协办。
在AIGC新时代的浪潮中,人工智能的未来需要牢牢建立在坚实的算力基础之上。算力不仅是推动未来发展的核心驱动力,也是新质生产力的基石。在这一轮科技革命与产业变革中,新质生产力不仅代表着高效与先进,更是对“生产力”提升和结构优化的深刻追求。
高性能计算将更好的与智算相融合,为人工智能、云计算、大数据和物联网等领域提供了强大的支持,推动着新质生产力的蓬勃发展。
北京天云融创软件技术有限公司CEO杨立亮相本届大会“第二届高性能异构计算与人工智能优化”分论坛,阐述了公司对超智算融合的最新理念和解决方案。
每当提到AI算力调度,许多人首先想到的可能是Kubernetes,毕竟它作为当前最流行的容器编排工具,在众多场景下表现出色。然而Kubernetes的劣势也较为明显,如集群资源利用率偏低、对训练任务的批处理支持不够灵活等,今天天云融创软件将为大家提供一个新的视角。
探讨AI算力调度,首先需要明确未来AI的真正涵盖内容。传统AI和AIGC虽被视为AI领域的核心组成部分,但我们认为未来AI的范围远不止于此。大数据和高性能计算(HPC)同样是推动AI进步的关键因素。
清华大学郑纬民院士提出的“AI for Science”理念,强调了HPC与AI深度融合的重要性。这种融合不仅是当前技术发展的迫切需求,也为科学研究带来了前所未有的计算能力和效率,表明HPC将成为未来AI的重要组成部分。
数据处理是AI的基础,结合大数据与AI能够显著提升模型的训练和推理能力。过去,HPC、AI和大数据处理常被视为三个独立的计算资源区,各自运行和优化。然而,随着技术进步和应用需求增长,这三者正在逐步融合,形成一个统一的计算生态系统。这一趋势也定义了我们对未来AI涵盖范围的理解。
那么,当前的Kubernetes是否能够全面支持未来AI的算力服务需求?首先,我们需要分析Kubernetes在支持AI计算方面存在的优化空间。随着微服务架构和容器化服务的普及,Kubernetes已成为容器编排的事实标准。
然而,AI工作负载的快速增长对算力平台提出了新的挑战。其中一个关键问题是集群资源的利用率,尤其是GPU资源的高效使用。由于GPU算力成本高昂,提升其利用率显得尤为重要。
当前,Kubernetes由于其云原生特性,通常需要预留大量资源以确保服务的高可用性,这导致整体集群的资源利用率偏低。
相比之下,高性能调度器专为固定规模的集群设计,能够更优化地利用资源。因此,探索如何通过调度器提升资源利用率、减少任务等待时间、提高资源共享和拆借效率,成为亟待解决的问题。
其次,训练任务的批处理特性也是Kubernetes在AI计算中面临的重要挑战。传统的Kubernetes工作负载主要集中在在线常驻服务,而AI训练任务和离线推理任务则具有有序处理和任务关联等批处理特性。
Kubernetes在支持这种批处理需求方面表现有限,缺乏如“gang调度”(即同时调度一组相关联的任务)和高效的作业队列管理机制,无法满足高并发、低延迟的调度需求。
同时,在多租户环境下,Kubernetes也难以有效管理有限资源的分配和共享,进一步限制了其在AI算力调度中的应用。
除了上述问题,Kubernetes在硬件故障敏感性和高密度数据通信需求方面也存在不足。AI训练任务对GPU和主机的稳定性要求极高,任何故障都可能导致训练进度中断和数据丢失。
而在现有的Kubernetes容器架构下,GPU监控和故障处理机制反应较慢,影响任务的连续性。此外,分布式训练过程中,大规模数据集和多节点通信对存储和网络资源提出了更高要求,Kubernetes的存算分离架构往往增加了数据访问的延迟,进而影响整体计算效率。
经济学的一个基本原理指出,资源是有限的,且其边际效益大于零,因此“如何最有效地配置有限资源”成为永恒的主题。尽管Kubernetes在容器管理和云原生应用方面表现出色,但在支持AI计算的过程中仍存在诸多优化空间。提升整体资源利用率,尤其是针对高成本的GPU资源,是Kubernetes亟需解决的关键问题。
此外作为未来AI的重要组成部分,HPC是否可以使用Kubernetes AI计算平台?
经过深入分析,我们的结论是,目前无法在Kubernetes上有效支持HPC计算,原因是:
首先,硬件需求不同。AI计算通常对浮点运算精度要求较低,内存需求相对较少,但需要配置大量的GPU卡以加速模型训练。而HPC计算则对计算精度要求更高,通常使用双精度或更高精度的运算,且对内存的需求较大,主要依赖大规模高主频的CPU。在Kubernetes平台上,难以同时满足这两种不同的硬件需求,导致AI资源难以与HPC资源有效共用 。
其次,计算特点不同。Kubernetes主要支持容器镜像,满足AI计算中快速打包环境和移植的需求。然而,HPC仿真对性能有极高的要求,容器技术会引入额外的性能开销,通常不适用于HPC计算。此外,HPC计算常使用MPI并行框架,而AI计算则依赖于TensorFlow、PyTorch等深度学习框架,这在Kubernetes上运行高效的MPI并行计算仍存在诸多未知数。
再次,软件栈需求不同。HPC仿真涉及复杂的专业科学计算软件,这些软件对运行环境有特定要求,容器化可能增加系统复杂性甚至无法实现。此外,HPC工程师习惯于在裸金属和工作站上进行仿真计算,难以适应Kubernetes的使用方式。
最后,使用习惯的差异。HPC领域的发展早于AI,工程师已习惯于在专用环境中提交和管理计算任务,这与Kubernetes的操作方式存在巨大差异,导致迁移和整合困难。
综上,在Kubernetes上进行HPC计算很困难,所以目前客户只能选择建设单独的HPC平台和AI平台,强行将计算平台进行割裂,但这将带来一系列问题:资源池之间的闲置算力无法共享、数据无法互通,形成算力和数据孤岛;不同供应商构建的平台导致用户体验差异大;以及建设和运营的割裂分散,管理和支持更加复杂和不便。
因此,Kubernetes平台无法全面支持未来AI的计算需求,单独建设HPC和AI资源池不仅效率低下,还存在不少隐患。我们应当探索新的技术路线,例如改进HPC调度器以支持AI计算,从而在一个统一的平台上实现HPC与AI的高效协同,避免资源浪费和管理复杂性,推动AI技术的持续发展。
天云融创软件公司对此进行了积极探索,我们尝试通过改造自研的HPC调度器,以支持AI计算和HPC计算。
具体来说,我们以HPC计算平台产品为底座,结合HPC和AI的需求特点,倾力打造支持超算和智算的SkyForm智算云平台,实现异构多资源池的统一管理,提高资源池的利用率。
在此过程中,我们尝试在一个平台上支持裸金属计算、容器分布式计算,并调度Kubernetes、Slurm等子集群,以满足不同方向上的计算需求。
在产品演进过程中,我们重点关注AI计算中的容器调度、训练推理效率、GPU掉卡续训、集群节电调度等功能特性,此外,我们还在基于当前HPC架构的基础上,优化了容器集群中常见的问题,如容器镜像下载效率和空间利用率、容器网络转发问题、以及gang任务调度能力不足等,这些优化措施显著提升了平台的整体性能和用户体验。
下面将分享我们在某省智算中心实际落地的案例,展示SkyForm智算云平台在实际应用中的优势和成效。
在建设某省智算中心的过程中,客户面临着多资源池的统一调度与高效运营的挑战。具体而言,他们拥有三个不同类型的资源池,分别是利旧资源池、X86资源池和国产ARM资源池。
每个资源池在主机数量、CPU核数、GPU卡数以及存储容量上都有其独特的配置和需求,计算节点规模达到了1200多台,包含11万核CPU、400多张GPU卡以及近50PB的存储。客户希望通过一个统一的平台,实现这些异构资源的高效管理和优化利用,从而提升整体资源的利用率和运营效率。
其次,客户需要平台能够支持高性能计算、传统人工智能应用以及大模型的训练和推理。这意味着平台不仅需要具备强大的计算能力,还要能够灵活适应不同类型的计算任务,确保资源在各种应用场景下都能得到充分利用。此外,客户对智算中心运营提出了节电调度要求,希望通过智能调度和优化管理,实现集群节能环保需求。
为了满足客户的这些需求,我们设计并实施了SkyForm智算云平台方案。
首先,在资源池构建方面,我们根据不同资源池的特性,分别构建了三个独立的资源池,并在每个资源池下部署了自研调度器和并行分布式存储,确保资源的高效管理和利用。同时,为了方便用户按需访问和使用,每个资源池都设置了单独的交互子门户。
在算力调度服务方面,我们利用天云融创软件自研的SkyForm 算力调度系统,对异构资源进行智能调度。调度器不仅支持NVIDIA GPU MIG和国产GPU、CPU的异构资源调度,还能够调度Kubernetes和Slurm子集群,兼容多种AI计算框架,比如Deepspeed、Pytorch、TensorFlow。
这使得用户在进行高性能计算、传统人工智能以及大模型的训练推理时,能够充分发挥各类资源的优势,显著提升整体的资源利用率。
同时,统一算力服务平台的部署,使得三个资源池能够在一个统一的管理界面下运行。平台集成了统一的用户管理、计算服务和运营运维服务,极大地提升了资源池的整合度和管理效率。
用户不仅可以方便地提交和管理计算任务,还能通过平台实时监控资源使用情况,优化资源分配,降低运营成本。
自项目上线运营以来,取得了显著的成果,在近两年的运营中,一期资源池累计处理了超过1200万次计算作业,存储使用量达到8PB,且日常负载始终保持在高水平,充分体现了资源池的高效利用。
同时,X86和国产ARM资源池在上线仅几个月内,已成功处理约200万次作业。特别是X86资源池的GPU负载极高,主要用于AI开发及模型训练,展示了平台在支持AI和HPC计算方面的强大能力。
在项目设计和实施过程中也并非一帆风顺,我们遇到了许多挑战,也积累了大量宝贵的经验。
在项目实施过程中,客户提出了两个关键需求:首先是支持AI的多机多卡训练,以应对复杂模型的训练和大规模数据处理;其次是实现GPU故障后的自动续训,确保训练任务的持续性和稳定性。针对这些需求,我们在方案设计中重点关注了多机多卡训练的优化,并深入研究了断点续训的实现方法。
SkyForm 算力调度系统与Deepspeed、PyTorch等计算框架深入集成,确保在不同框架下都能高效运行多机多卡训练任务。调度器接收到训练任务后,会自动启动指定的框架,例如Deepspeed,实现裸金属或容器化的多机多卡训练。
在容器化环境中,调度器会在第一个分配的主机上拉取镜像并启动容器内的训练脚本;而在裸金属环境中,则直接执行训练脚本,无需拉取镜像。
通过我们自主研发的远程分发子任务组件,调度器能够将计算命令自动下发到其他分配的主机执行。这不仅避免了依赖容器免密SSH连接,降低了安全风险,也提高了任务执行效率。
在使用PyTorch框架时,与Deepspeed的集成有所不同,无需使用mpirun,而是直接利用调度器自身的runtask功能,自动在分配的主机上运行计算任务,简化了配置流程,提升了任务启动速度。
此外,在大规模训练中,算力的稳定性是最核心的需求之一。算力设备故障是不可避免的,如何在设备故障情况下实现训练任务的断点续训,成为确保训练持续性和系统稳定性的关键。SkyForm 算力调度系统支持自动断点续训功能,通过内置传感器不断收集作业使用的GPU、节点状态和系统性能等关键指标。调度器能够实时感知GPU的在线状态,及时判定是否发生GPU故障。
我们还设置了规则以判断作业是否进入假死状态。例如,当作业的I/O持续不变,且GPU利用率和显存变化方差极小时,调度器会自动判定该作业为假死状态,并根据预设的处理方案进行应对,如提醒用户重启或直接自动重启作业。自动重启后,AI训练框架通常会基于最新的checkpoint自动重新加载并继续训练,从而保障训练任务的连续性。
通过不断完善我们的方案,平台成功满足了多样化的算力运营需求,包括支持多机多卡训练、自动断点续训以及集群节点调度等关键功能。。
在多领域计算方面,我们高效调度了异构的GPU、TPU等专用硬件,加速了训练与推理任务。同时,针对科学计算和工程模拟,我们能够灵活调度异构CPU,确保高精度的大规模并行计算。
在服务差异化方面,我们根据不同的计算需求,提供了裸金属和容器化算力服务,满足了用户对算力提供方式的多样化需求。无论是共享资源还是专属算力节点,平台都能满足需求,确保每位用户都获得最适合的计算支持。
安全与节能也是我们的重要关注点。平台通过数据隔离、加密和防泄漏机制,保障了数据在传输和存储过程中的安全,为了响应环保需求,我们的系统能够根据集群负载动态调整节点电源状态,有效降低能耗。
在智能管理方面,平台支持多资源池和多租户的运营管理,使资源分配更加高效和合理。自动化和智能化运维功能的引入,大幅降低了人力成本,同时保障了集群业务的连续性和稳定性,确保系统持续高效运行。
通过这些努力和优化,我们的平台不仅全面满足了多样化的算力运营需求,还为用户提供了一个稳定、高效、安全且智能的计算环境。
近年来,天云融创软件在不同行业和垂直领域成功实施了众多HPC、AI及其融合计算项目。通过这些项目和当前技术的发展,我们深刻认识到,在复杂多变的技术与需求环境下,计算平台必须同时适应未来AI多方面的需求,尽可能提高稀缺资源的利用率,满足多样化的服务要求。因此,统一分布式计算平台将成为未来AI计算平台的发展趋势。
- 2022-03-22
- 2022-03-22
- 2022-03-22
- 2022-03-22
- 2022-03-18
- 2022-03-18