You need to enable JavaScript to run this app.
导航

GPU碎片资源整理规则设置

最近更新时间2024.03.13 14:55:58

首次发布时间2024.03.13 14:55:58

队列管理员可以设定队列内“GPU碎片资源整理规则”,该规则旨在从资源组维度优化 GPU 负载的摆放位置,清理造成 GPU 碎片的负载,缓解队列排队的情况。平台将按照用户的规则配置内容周期性进行GPU碎片整理,以提升GPU资源利用率。

场景一 现有某一用户有3台8卡机器。当前用户3台机器负载情况为 【占用7卡(4+2+1),占用6卡(4+2),占用7卡(4+2+1)】,此时用户想要提交一个4卡任务,会由于碎片无法运行。
场景二 现在某一用户有8台8卡机器。用户调度7个服务,每个服务9个实例,每个实例1卡。这样每个服务的实例分布在不同的机器上,用户一旦销毁某些服务,碎片就产生了。

而开启当前规则后,碎片情况会被平台识别。如场景一中平台将重新摆放负载的位置,将第三台机器的1、2卡负载分别摆放在另外两个机器上,第三台机器即可运行4卡任务。

使用前提

  • 拥有1个及以上队列,且是队列管理员。

注意事项

  • 命中当前规则的GPU负载若造成了碎片,可能会被平台停止。

  • 队列规则更改后会对队列中的历史负载生效,建议在创建队列后立刻配置规则,且不建议频繁更改规则。更改规则后请及时通知队列的使用者,以免影响历史负载的运行。

    • 还是基于上方的场景一,若用户提交4卡GPU任务的时候队列规则尚未开启当,则第三台机器的负载正常运行不会受到影响。在某一时刻队列管理员开启了自定义任务的GPU整理规则,对应负载则有可能命中规则而被停止。

操作步骤

  1. 登录机器学习平台,点击左侧导航栏中的【资源组管理】-【队列】进入列表页面。

  2. 点击队列名称进入详情页,点击【规则设置】,开启“GPU碎片资源整理规则”开关进行规则配置。

  3. 规则配置包含对【在线服务】和【自定义任务】两种负载的规则设置,具体参数如下:

规则配置配置说明

在线服务

  • 勾选后,「在线服务」中的所有实例均有可能被迁移。为确保服务的连续性,平台将先启动新的实例,并在确保其运行稳定后再删除旧实例。为减少迁移过程中可能造成的请求中断,建议配置“优雅关闭时间”并在代码中实现该机制。
  • 用户可根据自己的业务特性,根据cron语句配置「执行时间」。平台将按照配置的时间定时执行碎片整理规则。

自定义任务

  • 哪些任务会命中规则:
    • 使用闲时资源的自定义任务:勾选后,若在当前队列提交任务时,开启了「使用闲时资源」的开关,则任务有可能命中当前规则被停止。
    • 开启“自动重试“的自定义任务:勾选后,若在当前队列提交任务时,开启了「自动重试」的开关,则任务有可能命中当前规则被停止。
  • 命中规则而被停止的任务会受到什么影响:
    • 若任务在提交时开启了「自动重试」开关,则在停止后会被自动重新提交。在这种情况下,任务列表中会同时存在同名的新旧任务。
    • 任务的Timeline中会记录任务的停止原因,以及由平台自动重新提交的任务链接。由平台自动提交的任务不消耗重试次数。
  • Cron语句通过分钟、小时、日期、月份和星期配置,一共五个参数,可以为任务设定具体的执行时间。具体参数配置见下表:
参数名称参数说明
代表执行时间中的分钟。支持输入0-59之间的数字,输入 * 代表匹配任何值,可使用 “,”枚举。
代表执行时间中的小时。支持输入 0-23 之间的数字,输入 * 表示匹配任何值,可使用 “,”枚举。
代表执行时间中的日期。支持输入 1-31 之间的数字,输入 * 表示匹配任何值,可使用 “,”枚举。
代表执行时间中的月份。支持输入 1-12 之间的数字,输入 * 表示匹配任何值,可使用 “,”枚举。
星期代表执行时间中的星期。支持输入 0-6 之间的数字,0代表星期日,输入 * 表示匹配任何值,可使用 “,”枚举。
  • 示例
Cron语句执行时间
0 * * * *每小时执行策略。
0 0 * * *每天的 00:00 执行策略。
0 0 * * 0每周日的 00:00 执行策略。
0 0 1,2 * *每月1、2号的 00:00 执行策略。
0 12 * * *每天 12:00 执行策略。
  1. 可在队列列表页的「队列规则」字段,快速查看当前队列已配置的规则。