文档首页/ 云容器引擎 CCE/ 常见问题/ 工作负载/ 调度策略/ 如何避免非GPU/NPU负载调度到GPU/NPU节点?
更新时间:2024-06-21 GMT+08:00
分享

如何避免非GPU/NPU负载调度到GPU/NPU节点?

问题现象

当集群中存在GPU/NPU节点和普通节点混合使用的场景时,普通工作负载也可以调度到GPU/NPU节点上,可能出现GPU/NPU资源未充分利用的情况。

问题原因

由于GPU/NPU节点同样提供CPU、内存资源,在一般情况下,即使工作负载未声明使用GPU/NPU资源,调度器也会根据打分机制将工作负载调度到GPU/NPU节点运行,于是可能会出现GPU/NPU节点的CPU、内存资源被普通工作负载占用的情况,导致GPU/NPU资源闲置。

解决方案

在使用GPU/NPU节点时,可以为其添加污点,并通过工作负载容忍度设置,避免非GPU/NPU工作负载调度到GPU/NPU节点上。

  • GPU/NPU工作负载:添加指定污点的容忍度,可以调度至GPU/NPU节点。
  • 普通工作负载:未添加指定污点的容忍度,无法调度至GPU/NPU节点。

操作步骤如下:

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧列表中选择“节点管理”,勾选GPU/NPU节点,并单击“标签与污点管理”
  3. 单击“新增批量操作”,为GPU/NPU节点添加污点。

    选择“污点(Taints)”,并填写键值与污点效果。示例中,为GPU/NPU节点添加accelerator=true:NoSchedule的污点。

    图1 添加污点

  4. 创建GPU/NPU工作负载时,在高级配置中,手动添加容忍策略,容忍该污点。

    图2 容忍策略

  5. 普通工作负载创建时,无需添加容忍策略。由于未容忍该污点,则不会被调度到GPU/NPU节点。

相关文档