《11-DRA 构架资源精细化管理的生产实践 - 吉元昊.pdf》由会员分享,可在线阅读,更多相关《11-DRA 构架资源精细化管理的生产实践 - 吉元昊.pdf(11页珍藏版)》请在三个皮匠报告上搜索。
1、DRA异构资源精细化管理的生产实践吉元昊(shink),华为,Apache InLong PMC目录Kubernetes for LLMs01Device Plugin 2.0:Dynamic Resource Allocation03Device Plugin 1.002ContentKubernetes for LLMsDL训练/推理、HPC 等场景下,K8s 的异构架构迎来挑战:计算 高性能专用加速设备 存储 高速本地缓存+分布式文件系统 网络 高速低延迟网络/RDMA网络 调度 资源争抢/亲和性调度Master node CPU only Worker node GPU support
2、 GPU PodGPU PodWorker node GPU support GPU PodGPU PodDevice Plugin Introduced in 1.8,GA in 1.26 独立、可插拔的外部组件,由各设备厂商实现 Device Plugin 负责设备发现、设备分配、健康状态上报 Runtime 负责环境配置、设备挂载等底层功能支持【解决的问题】1.像 CPU/Mem 资源一样,使 K8s 能感知到 GPU 资源2.适配不同的硬件Container RuntimeDevice PluginSchedulerML/LLM/HPCDevice Plugin【流程】1.DP 作为
3、DaemonSet 方式启动2.DP 调用 Kubelet 的Register()接口进行注册3.Kubelet 调用 DP 的ListAndWatch()查询设备资源4.Kubelet 调用 DP 的Allocate()分配设备资源,设置环境变量:ASCEND_VISIBLE_DEVICES【不足】1.设备共享(DP 仅支持资源独占)2.复杂条件的设备筛选(DP 仅支持描述用量)3.亲和性调度(DP 不支持描述设备间的拓扑关系)API ServerDevice plugin ManagerKubeletetcd1.RegisterDevice plugin(DemonSet)2.ListAn
4、dWatch3.AllocateDynamic Resource Allocation 资源请求的新方式:Alpha since 1.26 Major API changes in 1.31 Beta in 1.32 GA in?Disabled by default【优势】弥补 Device Plugin 无法应对复杂需求描述的不足 提供多元化的标签与选择功能,辅助 Scheduler 决策Requests 20G memRequests 10G memNPU0 NPU1With DRAWithout DRANPU0 NPU1Dynamic Resource Allocation DRA R
5、esource Driver:向 kubelet 注册资源账本信息从 ResourceSlice 对象中检索可用资源,同时跟踪已分配给 ResourceClaim 的资源,然后从剩余的资源中进行选择在调度器完成调度决策后,DRA Driver 负责完成设备挂载/初始化工作 资源:DeviceClass:描述设备参数,支持 CEL 表达式ResourceClaim:描述请求资源,支持 CEL 表达式ResourceSlice:描述集群中可用资源片段KubeletDRA Resource DriverDynamicResourceResourceClaimControllerAPI ServerD
6、ynamicResourceSchedulerDeviceClassRsourceSliceNPU DriverWorkerDP vs DRAkind:Podspec:containers:-name:container0resources:requests: on AscendvNPU 虚拟化:通过资源虚拟化的方式、按照虚拟化实例模板,将物理 NPU 切分成若干份 vNPU 虚拟化方式:硬件虚拟化/软件虚拟化 DRA on Ascend 实现:静态虚拟化:事先基于模板切分