跳转到主要内容
--profile 是唯一的资源参数。节点数、并行度和 NCCL 环境来自服务端硬件注册表,不来自你的配置。

Profile 与 series

series 是部署自己定义的一类加速卡。profile 是覆盖在 series 之上的命名预设:一个默认 形状,加上针对这个形状的进程环境与框架覆盖项。 覆盖项跟着 profile 走,不跟着你的实验走:NCCL 设置、PyTorch allocator、全 1 并行度、vLLM 显存 比例。换卡型不需要改实验。 h200:16 是总数,不是每节点数。注册表把它换算成节点数 × 每节点卡数。

把一个作业拆到两种卡上

重复 --profile 并带上角色前缀,把训练和 rollout 放到不同的卡上:
共用一个 pool 的角色用逗号分隔:
每个 pool 的 gpus_per_node 必须相同。多 pool 在 kubernetes(每个 pool 一个 worker group)和 slurm(一个 hetjob,每个 pool 一个 component,--constraint 取自 series)上可用。node 不支持多 pool,只支持单个同构资源池,最多跨 8 台机器。Slurm 会拒绝没有配 constraint 的 series。

配额

配额由管理员按用户设置。提交时检查一次,出队时再检查一次。 在这些标量之上还能按 series 单独设限,这是异构集群把 H100 作业和 H200 作业分开计的方式。 超配额不会拒绝作业。它在 QUEUED 里等。tp status 和控制台的 Usage 页显示你的水位。存储是 测量而非预留,所以那道闸门比现实略滞后,而 GPU 闸门是精确的。

调度时间窗

管理员可以限制某个 series 什么时候能跑 —— 白天推理、夜里训练。时间窗按星期设置,可以跨午夜。 时间窗关闭时:
  • 新作业不出队。窗口剩余时间太少时也会被拦住。
  • 正在跑的作业先得到一段宽限期,然后暂停。checkpoint 会保留。
  • 窗口重新打开时,暂停的作业从 checkpoint 继续。
tp status 和作业页会把时间窗点名为等待原因。

计什么

每个作业记录 gpu_seconds:持卡的墙钟时间乘卡数。排队时间不计。容器起来、作业真正占住 GPU 之后才开始计。 多个 pool 的作业按卡数拆分,而且是精确而非近似:一个作业的各个 pool 是一起放置、一起启动、 一起释放的。

下一步

作业状态讲把作业卡在 QUEUED 里的配额与时间窗规则。 提交作业讲剩下的参数。 角色与配额是给设置它们的人看的。