当前位置: 首页 > article >正文

MindCluster集群调度实践-通用超节点调度算法

作者昇腾实战派一、超节点的重要性随着模型参数量的上升训练任务运行所需的芯片数量也达到了万卡、十万卡级别。如何将如此庞大的芯片链接起来并且做到通信带宽和成本的平衡成为硬件层面的一大难题。图1.资源扩展方式示意图超节点方案二有以下几点优势​必要性​Leaf交换机需要与所有的Spine交换机互联才能组成扁平的Spine-Leaf网络。因此Spine-Leaf网络的横向扩展并不是无止境的它受限于交换机的接口数量。​成本​Spine-Leaf网络的带宽提升需要整个网络一起提升成本巨大。而训练场景其实只是局部TP、EP、SP对网络要求高局部带宽升级性价比更高。​性能​超节点可以实现超低时延超大带宽统一内存编址极大提升训练推理性能。二、亲和性调度的必要性通过超节点优化局部网络可以在成本和性能之间找到一个平衡点。而面对一个不对等的网络任务如何部署就显得尤为重要。一个错误的部署可能导致网络带宽降级集合通信建链失败网络资源更优但是网络性能下降等问题​网络带宽降级原因​HCCL集合通信在跨超通信时会进行自适应的算法选择当任务在各超节点中的服务器数量不一致时会默认启用最大公约数算法NHR Highest Common Factor,该算法通过计算超节点间服务器数的最大公约数将通信域切分为多个对称分布的逻辑超节点依次保证网络的对称性。逻辑超节点间只能走Spine-Leaf网络因此可能出现图2的情况节点1和节点4虽然在同一个超节点网络中但是只能走Spine-Leaf网络图2.网络通信方式示意图​集合通信建链失败原因​在昇腾社区的通信域管理文档中明确要求了同一个超节点内的服务器信息需要配置在一起也就是同一超节点内的rankId是连续的不支持两个超节点下的服务器的rankId交叉配置。​网络资源更优但是网络性能下降的原因​训练任务通过各种并行策略将任务分解到了多张芯片上一般来说TP、EP、SP的流量是TB级别而DP、PP流量是GB级别。假设任务的TP是8EP是2DP是5。一台服务器的芯片数量是8则该任务一共需要10台服务器。如图3所示场景一的调度方案虽然将任务平均的调度到了两个超节点中但是有一部分EP流程跑在了Spine-Leaf网络上。场景二的调度方法虽然将任务不平均的调度到了三个超节点但是所有的TP\EP流量都跑在了灵衢网络上。场景二网络性能更优。图3.网络通信方式示意图三、通用亲和性调度的必要性及MindCluster内部实现逻辑在第二章节中我们已经了解了超节点网络中必须要配合亲和性调度算法才能最大化的释放超节点算力。而超节点的形态随着客户的需求、产品的迭代在不断的变化定制化开发会浪费大量人力。因此需要一个通用的亲和性算法可以在多种超节点网络拓扑下保证网络的亲和性并且做到资源碎片的最小化。(1) 确定数据结构要想实现通用的亲和性算法首先要将超节点网络拓扑、任务网络诉求抽象成通用的数据结构。如图4所示图4.节点树与任务树匹配方式示意图超节点网络拓扑超节点的网络都是一个多层结构层级越低节点数量越少网络越优因此可以使用一个多层的树来表示。叶子节点就是AI服务器节点的层级代表网络的层级两个叶子节点之间的最短连线就是这两台服务器间通信的最优网络路线。l 一个集群中可能有多棵树。造成多棵树的原因可能是有多种不同的超节点也有可能原本是一棵树因为网络故障导致服务器被孤立成了一颗新的树。l 树的层级和超节点网络的层级有关但是会基于算法复杂度设置上限。任务网络诉求一个训练任务因为不同并行策略对网络的诉求不一样因此可以基于并行策略将任务看成多层的子任务。每一层子任务可以配置自己所需的网络层级。一个推理任务也会因为PD分离被看成多个子任务每个子任务可以配置自己所需的网络层级。l 子任务实际部署的层级可能比配置的网络层级更低实际网络比配置网络优但是不能更高实际网络比配置网络差。l 任务的层级和任务的切分策略和网络诉求有关但是会基于算法复杂度设置上限。(2) 如何生成数据结构通过第1步我们已经确定了数据结构MindCluster会通过自有的Ascend Device Plugin、Volcano、Ascend Operator实现数据结构的自动生成。Ascend Device Plugin组件上报了节点的所属超节点ID、所属框ID等节点基础信息Volcano组件通过监听ConfigMap感知到了网络拓扑配置。通过这两个信息就能在Volcano的内存中维护出多棵硬件的拓扑树。图5.节点树生成方式示意图Ascend Operator定义了标准的任务创建接口通过接口字段校验要求任务新增超节点网络亲和配置。如图6所示该配置表示任务一共使用8个节点第一层子任务大小为8个数为1该子任务必须部署到一个超节点中第二层子任务大小为2个数为4每一个子任务必须部署到一个框中且这些框同属一个超节点。图6.任务树生成及绑定关系示意图(3) 如何基于数据结构实现算法当复杂的网络问题被抽象成了两个基本的数据结构Volcano就可以通过算法实现通用的亲和性调度算法逻辑如图7所示图7.超节点通用亲和性调度算法示意图关键步骤解释如下​调度函数​从根节点递归遍历服务器资源经服务器过滤、服务器排序构建出任务树。构建遵循五大原则深度优先构建任务树首先保障资源分配满足任务网络诉求。资源利用率最优以碎片分数为首要排序键。网络带宽最优碎片分数相同时按照网络带宽优劣排序。支持优先网络带宽最优其次资源利用率最优覆盖不同调度场景。资源不足时允许使用预留服务器兼顾资源利用率与关键作业的故障恢复效率。​计算碎片得分规则​该规则用于评估同一颗树内节点选择的优先级也用于多棵树选择的优先级。碎片分数的计算是一个递归的过程从叶子节点开始向上聚合叶子节点的碎片得分 该节点的父节点下的所有叶子节点 / 该节点的父节点下的被使用叶子节点非叶子节点的碎片得分 下一层的子节点的碎片得分 * 10 该节点的父节点下的所有叶子节点 / 该节点的父节点下的被使用叶子节点四、MindCluster超节点亲和性调度算法效果保证了任务的超节点网络最优。减少了资源碎片提升资源利用率。使用一套MindCluster服务零代码适配后续的超节点形态。调度问题变成了单纯的算法问题可以快速演进至DRL等全局调度算法。

相关文章:

MindCluster集群调度实践-通用超节点调度算法

作者:昇腾实战派 一、超节点的重要性 随着模型参数量的上升,训练任务运行所需的芯片数量也达到了万卡、十万卡级别。如何将如此庞大的芯片链接起来,并且做到通信带宽和成本的平衡,成为硬件层面的一大难题。 图1.资源扩展方式示…...

Windows安卓子系统终极指南:5步打造完美移动应用体验

Windows安卓子系统终极指南:5步打造完美移动应用体验 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 想在Windows电脑上流畅运行手机应用吗&…...

拯救者笔记本终极优化指南:5个必知技巧彻底释放硬件潜能

拯救者笔记本终极优化指南:5个必知技巧彻底释放硬件潜能 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 你是否厌…...

终极指南:3步掌握FakeLocation应用级虚拟定位保护隐私

终极指南:3步掌握FakeLocation应用级虚拟定位保护隐私 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否担心手机应用过度获取你的真实位置?想不想为微…...

如何用3步将B站视频变成文字稿?这个智能转录工具让你告别手动记录

如何用3步将B站视频变成文字稿?这个智能转录工具让你告别手动记录 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经为了记录一个B站视频…...

深度学习编译器优化:CNN与MHA块的性能差异与实践指南

1. 深度学习编译器优化概述在深度学习模型部署的实际场景中,我们常常面临一个关键矛盾:训练框架(如PyTorch)的动态图特性虽然灵活,但在推理时会产生显著的性能开销。这正是深度学习编译器技术大显身手的领域——通过静…...

基于RL78 MCU的低功耗声音采集系统设计与实现详解

1. 项目概述:一个基于RL78的低功耗声音采集系统最近在整理一个老项目的技术文档,正好翻出来一个挺有意思的案例:一个基于瑞萨RL78系列MCU的低功耗声音采集与显示系统。这个项目的核心目标很明确,就是实现一个能够长时间、稳定地采…...

FakeLocation:无需Root的Android虚拟定位终极解决方案

FakeLocation:无需Root的Android虚拟定位终极解决方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否曾经因为地理位置限制而无法参与心爱的游戏活动&#xff…...

汽车电子TVS二极管选型与应用:从原理到30KW高功率防护实践

1. 项目概述:从一颗小小的TVS二极管说起最近和几个做汽车电子的老朋友聊天,大家不约而同地提到了同一个痛点:车上那些娇贵的ECU(电子控制单元)、传感器和CAN总线,动不动就被静电、抛负载或者雷击感应浪涌给…...

Linux驱动开发:模块参数传递机制详解与工程实践

1. 项目概述:驱动安装与参数传递的“暗语”艺术在Linux驱动开发的世界里,把驱动模块加载进内核,就像给一个正在高速运转的精密机器安装一个新的零件。而“安装驱动参数传递”,就是这个安装过程中,我们与内核、与新零件…...

CW32L083定时器中断全解析:从基础定时到PWM捕获的实战指南

1. 项目概述与核心价值最近在做一个基于CW32L083的低功耗数据采集项目,其中有一个核心需求是每隔100毫秒精确采集一次传感器数据。为了实现这个看似简单的定时功能,我不得不把CW32的定时器子系统从头到尾捋了一遍。这不捋不知道,一捋才发现&a…...

3分钟完成Windows包管理器Winget的终极一键安装指南

3分钟完成Windows包管理器Winget的终极一键安装指南 【免费下载链接】winget-install Install WinGet using PowerShell! Prerequisites automatically installed. Works on Windows 10/11 and Server 2019/2022. 项目地址: https://gitcode.com/gh_mirrors/wi/winget-instal…...

如何快速实现GitHub界面全面中文化:3分钟安装终极汉化插件

如何快速实现GitHub界面全面中文化:3分钟安装终极汉化插件 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese GitHub中文插件…...

R型变压器与稳压电源:解决电压不稳跳闸,保障电器安全

1. 项目概述:从频繁跳闸到电压稳定的核心诉求如果你住在农村、城乡结合部,或者一些老旧小区,家里电器一多,或者一到用电高峰,空气开关就“啪”一声跳闸,这种烦恼我太懂了。以前我老家也这样,夏天…...

别再手动调相机了!用CinemachineFreeLook快速搞定Unity第三人称视角(附完整配置流程)

告别繁琐调试:用CinemachineFreeLook打造专业级Unity第三人称视角 在游戏开发中,第三人称视角的实现往往让开发者头疼不已。传统的手动摄像机控制不仅需要编写大量代码来处理跟随、旋转和碰撞检测,还容易产生抖动、穿模等恼人的问题。而Unity…...

大语言模型推理引擎优化:架构挑战与关键技术解析

1. 大语言模型推理引擎的架构挑战与优化方向1.1 Transformer架构的固有瓶颈Transformer架构的自注意力机制存在两大核心瓶颈:计算复杂度和内存占用。对于序列长度N,自注意力层的计算复杂度为O(N),这使得长文本处理成为性能黑洞。以2048 token…...

AI赋能泳装设计,今夏爆款如何诞生?

AI赋能泳装设计,今夏爆款如何诞生?随着气温攀升,泳装市场迎来销售旺季。北京先智先行科技有限公司凭借"先知大模型"、“先行AI商学院”、"先知AIGC超级工场"三大旗舰产品,正为泳装行业注入全新活力。传统泳装…...

敏感词过滤的‘内存刺客’?深入剖析DFA/Trie树的优化实战与替代方案

敏感词过滤系统的内存优化实战:从DFA到双数组Trie的进阶之路 当你的应用日活突破百万级别,每天产生数千万条UGC内容时,敏感词过滤系统突然开始频繁触发Full GC——这可能是每个后端工程师的噩梦。传统的DFA实现就像潜伏在JVM中的"内存刺…...

Keil MDK-ARM许可证错误-25的解决方案

1. 问题现象与背景解析最近在升级Keil MDK-ARM到新版本后,不少开发者遇到了一个棘手的许可证错误。当尝试编译项目时,系统会弹出如下错误提示:Error: A9555E: License checkout for feature mdk_xxx_compiler5 with version 5.0201411 has be…...

告别Visio!用WPF+MVVM打造属于你自己的业务流程设计器(附完整源码)

基于WPFMVVM构建企业级业务流程设计器的实战指南 在当今企业数字化转型浪潮中,业务流程管理系统(BPM)已成为提升运营效率的核心工具。传统Visio等绘图工具虽然功能强大,但往往难以与企业内部系统深度集成,且缺乏动态交互能力。本文将带你从零…...

安装部署Keystone

一、以下命令安装了Keystone组件的必要软件包。 [rootcontroller ~]# yum -y install openstack-keystone httpd mod_wsgi 二、MariaDB数据库配置 [rootcontroller ~]# mysql -uroot -p000000 查看当前已有数据库: show databases;第2步,新建“keyston…...

RunAsTI终极指南:如何获取Windows最高TrustedInstaller权限

RunAsTI终极指南:如何获取Windows最高TrustedInstaller权限 【免费下载链接】RunAsTI Launch processes with TrustedInstaller privilege 项目地址: https://gitcode.com/gh_mirrors/ru/RunAsTI 在Windows系统管理中,有时即使拥有管理员权限也无…...

RimSort终极指南:3步轻松管理你的RimWorld模组库

RimSort终极指南:3步轻松管理你的RimWorld模组库 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-managed a…...

碳感知Transformer与硬件协同优化框架解析

1. CATransformers:碳感知Transformer与硬件协同优化框架解析在AI技术快速发展的今天,Transformer模型已成为自然语言处理、计算机视觉和多模态任务的核心架构。然而,这些模型的广泛部署带来了显著的碳排放问题——不仅包括训练和推理过程中的…...

K210+STM32F103C8T6低成本送药小车全流程:从硬件选型到代码调试避坑

K210STM32F103C8T6低成本送药小车全流程:从硬件选型到代码调试避坑 当电子竞赛遇上嵌入式开发,一个融合视觉识别与运动控制的送药小车项目,往往成为检验技术实力的试金石。本文将带你从零开始,用K210视觉模块与STM32F103C8T6主控芯…...

5分钟搞定虚拟显示器:ParsecVDD终极指南,解锁4K游戏串流新境界

5分钟搞定虚拟显示器:ParsecVDD终极指南,解锁4K游戏串流新境界 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否曾经因为物理显示器限制而无法获得完…...

骁龙855深度解析:5G基带集成与移动芯片架构演进

1. 从爆料到现实:骁龙855的早期信息拼图2018年初,当搭载骁龙845的手机才刚刚在市场上崭露头角时,关于其继任者的传闻就已经开始流传。对于像我这样长期关注移动芯片发展的从业者来说,每一代旗舰SoC的迭代节奏都像是一场精心编排的…...

TI SimpleLink平台实战:MSP432+CC3120构建统一嵌入式开发方案

1. 项目概述:为什么我们需要一个统一的嵌入式开发平台?如果你和我一样,在嵌入式行业摸爬滚打了几年,一定会对下面这个场景深有感触:老板今天说要做个带Wi-Fi的智能插座,你吭哧吭哧用ESP32调通了&#xff1b…...

FPGA无人机电源设计:集成PMIC方案如何解决多路供电与空间挑战

1. 项目概述与核心挑战最近在做一个由FPGA控制的无人机项目,其中电源管理系统的设计让我感触颇深。无人机这玩意儿,飞控、图传、传感器一个比一个耗电,但留给电源和PCB的空间却极其有限。更头疼的是,主控用上了高性能的FPGA或SoC&…...

HD-G2L平台USB存储性能实测:U盘选型与嵌入式系统优化指南

1. 项目概述与测试背景在工业物联网和嵌入式人机界面(HMI)项目的开发中,外部存储设备的读写性能常常是决定系统响应速度和数据吞吐能力的关键一环。想象一下,一个用于生产线数据采集的终端,需要频繁地将传感器日志、操…...