首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
云原生
›
揭秘DeepSeek:Kubernetes+Slurm混合调度架构如何炼成AI ...
返回列表
发新帖
揭秘DeepSeek:Kubernetes+Slurm混合调度架构如何炼成AI算力?
[复制链接]
发表于 2025-5-17 08:09:14
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
择要
:在超大规模AI练习场景中,如何实现GPU资源的精细化调度?DeepSeek创新性地将Kubernetes的
容器
编排本事与Slurm的高
性能
计算作业调度相联合,构建出分身灵活性与效率的混合调度系统。本文深入解析其焦点筹划原理与落地实践。
一、为什么必要混合调度?
在AI研发场景中,存在两类典型工作
负载
:
负载
类型
特点
代表场景
在线服务
长期运行、弹性伸缩模子
API
服务、及时推理
离线练习
短时高耗、强隔离需求千卡级大模子练习任务
传统方案痛点
:
单一使用K8s管理练习任务时,缺乏对MPI作业的原生支持
仅用Slurm调度难以满足
微服务
化部署需求
DeepSeek解法
:
分层调度架构
——K8s管控在线服务,Slurm调度离线练习,通过
同一资源池
实现动态分配。
二、焦点架构筹划
2.1 系统拓扑
+-----------------------+
| User Job Submission |
+----------+------------+
|
v
+----------+------------+
| Slurm Workload Manager| # 负责Batch Job调度
| (集成K8s Custom Plugin)|
+----------+------------+
|
v
+----------+------------+
| Kubernetes Master | # 管理Pod生命周期
| (扩展ResourceQuota策略)|
+----------+------------+
|
v
+----------+------------+
| GPU裸金属节点 |
| (NVIDIA MIG技术分区) |
+-----------------------+
复制
代码
2.2 关键组件交互
结语
:Kubernetes与Slurm的深度融合,为AI算力调度提供了新范式。这种混合架构既保存了HPC范畴的高效性,又继续了
云原生
的弹性本事,将成为下一代AI根本办法的告急支柱。
资源抽象层
通过
Node Feature Discovery (NFD)
标志GPU类型(如A100-80G)
使用
DevicePlugin
将GPU卡细分为MIG实例(比方1g.10gb)
调度决策流
# 当用户提交Slurm作业时:
if job_type == "MPI训练任务":
Slurm调用k8s-slurm插件 → 转换为K8s Job CRD
Volcano调度器介入 → 根据Gang Scheduling策略分配整组GPU
else:
直接由K8s默认调度器处理
复制
代码
资源抢占机制
定义
PriorityClass
实现分级抢占
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: slurm-high-priority
value: 1000000 # 训练任务优先级
preemptionPolicy: Never # 禁止被抢占
复制
代码
三、实战设置示例
3.1 部署Slurm Operator
# 使用Helm部署Slurm集群
helm install slurm-operator \
--set slurmdbd.enabled=true \
--set slurmctld.enabled=true \
--set slurmd.enabled=true \
slurm-operator/slurm-operator
复制代码
3.2 定义混合资源配额
# quotas.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
name: gpu-quota
spec:
hard:
requests.nvidia.com/gpu: "64"
scopeSelector:
matchExpressions:
- operator: In
scopeName: PriorityClass
values: ["slurm-high-priority"] # 为Slurm任务保留专用配额
复制代码
3.3 提交跨架构任务
# 提交Slurm作业(自动转换为K8s Job)
sbatch -N 4 --gres=gpu:8 <<EOF
#!/bin/bash
srun --mpi=pmix \
python train.py --batch_size 1024
EOF
# 查看资源分配状态
sinfo -o "%N %G %C" # 显示节点GPU利用率
kubectl get pods -l job-type=slurm
复制代码
四、
性能
优化实践
4.1 通信加快方案
技术方案延迟对比适用场景默认TCP协议120μs/packet小规模数据传输
RDMA over Converged Ethernet (RoCE)
8μs/packet跨节点AllReduce操作
设置方法
:
# 启用K8s RDMA支持
kubectl label nodes node-1 feature.node.kubernetes.io/rdma.capable=true
复制代码
4.2 弹性伸缩计谋
基于Prometheus指标触发自动扩缩容:
# hpa-config.yaml
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: training-job-scaler
spec:
scaleTargetRef:
apiVersion: batch/v1
kind: Job
name: resnet-training
minReplicas: 4
maxReplicas: 32
metrics:
- type: Pods
pods:
metric:
name: nvidia_gpu_utilization
target:
type: AverageValue
averageValue: 85% # GPU利用率超85%触发扩容
复制代码
五、落地收益对比
指标
纯K8s方案混合调度方案提升幅度作业排队时间均匀23分钟≤5分钟78%↓GPU碎片率15%-20%<5%75%↓大规模作业乐成率83%99.6%16%↑
客户案例
:某自动驾驶公司采用该方案后,千卡任务启动时间从1.5小时收缩至8分钟!
六、将来演进方向
异构资源同一调度
整合CPU/FPGA资源到同一资源池,支持更复杂workload
AI4Scheduling
应用强化学习算法预测资源需求,实现智能超调度
相关阅读
:
DeepSeek资源调度白皮书
K8s+Slurm
性能
调优实战
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
返回列表
浏览过的版块
人工智能
宝塔山
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表