Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,27 @@ srun_options:
mem: "0"
container-remap-root: ""

telemetry:
enabled: true
provider: dcgm-power
default_frequency: 1.0
storage_subdir: power
required: true
startup_timeout_seconds: 120
request_timeout_seconds: 2
collector_join_timeout_seconds: 12
dcgm_exporter:
container_image: dcgm-exporter
port: 19401

benchmark:
type: custom
client_placement: head
concurrencies: [48, 52, 56]
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
ENABLE_AGENTX_POWER: "1"
REQUIRE_POWER: "1"
INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace"
RESULT_DIR: "/logs/agentic"
PORT: "8000"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,27 @@ srun_options:
mem: "0"
container-remap-root: ""

telemetry:
enabled: true
provider: dcgm-power
default_frequency: 1.0
storage_subdir: power
required: true
startup_timeout_seconds: 120
request_timeout_seconds: 2
collector_join_timeout_seconds: 12
dcgm_exporter:
container_image: dcgm-exporter
port: 19401

benchmark:
type: custom
client_placement: head
concurrencies: [32, 48, 64]
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
ENABLE_AGENTX_POWER: "1"
REQUIRE_POWER: "1"
INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace"
RESULT_DIR: "/logs/agentic"
PORT: "8000"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,27 @@ srun_options:
mem: "0"
container-remap-root: ""

telemetry:
enabled: true
provider: dcgm-power
default_frequency: 1.0
storage_subdir: power
required: true
startup_timeout_seconds: 120
request_timeout_seconds: 2
collector_join_timeout_seconds: 12
dcgm_exporter:
container_image: dcgm-exporter
port: 19401

benchmark:
type: custom
client_placement: head
concurrencies: [32, 48]
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
ENABLE_AGENTX_POWER: "1"
REQUIRE_POWER: "1"
INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace"
RESULT_DIR: "/logs/agentic"
PORT: "8000"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,27 @@ srun_options:
mem: "0"
container-remap-root: ""

telemetry:
enabled: true
provider: dcgm-power
default_frequency: 1.0
storage_subdir: power
required: true
startup_timeout_seconds: 120
request_timeout_seconds: 2
collector_join_timeout_seconds: 12
dcgm_exporter:
container_image: dcgm-exporter
port: 19401

benchmark:
type: custom
client_placement: head
concurrencies: [1]
command: bash /infmax-workspace/benchmarks/multi_node/agentic_srt.sh
env:
ENABLE_AGENTX_POWER: "1"
REQUIRE_POWER: "1"
INFMAX_CONTAINER_WORKSPACE: "/infmax-workspace"
RESULT_DIR: "/logs/agentic"
PORT: "8000"
Expand Down
10 changes: 10 additions & 0 deletions docs/ci-procedures.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,16 @@ RUN_ID=$(gh run list \

Do not continue if `RUN_ID` is empty. Run metadata describes the dispatch workflow ref, which may not equal input `ref`. Verify the unique title, generator command, and checkout ref in `get-jobs` before interpreting GPU results.

## Kimi-K3 AgentX power backfills

The Kimi-K3 B200, GB200 and GB300 multi-node recipes enable required DCGM telemetry and run the custom AgentX client on the serving head. Their launchers select the immutable AgentX power runtime, stamp its commit, wait for Slurm completion and telemetry drain, then validate each requested concurrency before staging results. The shared result collector preserves failed native jobs and stages available power diagnostics before returning a failure. H200 routing and AMD measurement-tail fixes are separate changes pending their own integration and validation. Required telemetry configuration alone does not establish hardware qualification.

GB300 Kimi-K3 aggregate and disaggregated recipes use exporter port `19401` because the node system service occupies `9401`. The shared telemetry stage forwards this port to both prefill and decode Slurm groups. The retained two-node exporter lifecycle evidence covers port ownership and cleanup; it does not replace disaggregated request, power-window, or eval qualification.

For a missing-power backfill, generate only the missing recipe/concurrency combinations, set `require-power: true`, and leave `agentx-fast: false` and the duration override empty. The normal AgentX profile is one hour. Verify a first missing point on each newly enabled runtime/cluster before scheduling its remaining points. A rendered recipe or an online GitHub runner does not establish live collector readiness or Slurm capacity. Preserve the existing validated points, and keep new performance and power values paired with their own run; never attach a new run's energy to an older performance row. Manual `e2e-tests.yml` artifacts still require the normal reviewed ingestion path before they appear in the dashboard.

B200 Kimi recipes use DCP8 with Mooncake offload disabled. The master config records `dcp-size: 8` and `kv-offloading: none` to match those commands; this metadata correction does not enable offload.

## PR primary and modifier labels

Sweep labels authorize GPU work for same-repository PRs whether draft or ready. Draft status controls review readiness, not sweep eligibility; fork PRs retain their trusted-dispatch path. Adding a sweep label or pushing with one present can start a sweep. Marking ready does not dispatch or repeat one. To start an already-labeled draft that has no run, remove and reapply its sweep label.
Expand Down
10 changes: 10 additions & 0 deletions docs/ci-procedures_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,16 @@ RUN_ID=$(gh run list \

如果 `RUN_ID` 为空,不得继续。Run Metadata 描述派发 Workflow 的 Ref,可能不等于输入 `ref`。解释 GPU 结果前,必须在 `get-jobs` 中确认唯一标题、生成器命令与 Checkout Ref。

## Kimi-K3 AgentX 功耗补测

Kimi-K3 的 B200、GB200 和 GB300 多节点配方启用必需的 DCGM 遥测,并在服务头节点运行自定义 AgentX 客户端。Launcher 选择固定提交的 AgentX 功耗运行时、记录提交 SHA,等待 Slurm 结束和遥测收尾,然后逐一验证所请求的并发点并保存结果。共享结果收集器会保留原生任务的失败状态,先保存可用的功耗诊断文件,再返回失败。H200 路由和 AMD 测量尾部修复属于独立变更,仍待各自集成与验证。启用必需遥测配置本身不代表硬件验证通过。

GB300 Kimi-K3 聚合与分离部署 recipe 使用 exporter 端口 `19401`,因为节点系统服务占用了 `9401`。共享遥测阶段会将此端口传入 prefill 和 decode 两个 Slurm 分组。已有双节点 exporter 生命周期证据验证了端口归属与清理行为,但不能替代分离部署的请求账目、功耗窗口或 eval 验证。

补测缺失功耗时,只生成缺失的配方与并发组合,设置 `require-power: true`,保持 `agentx-fast: false`,并留空时长覆盖。标准 AgentX Profile 为一小时。对新启用的运行时或集群,先验证一个缺失点,再调度其余点。配方渲染通过或 GitHub Runner 在线并不能证明实时采集已就绪,也不能证明 Slurm 有空闲资源。保留现有有效点,新性能与功耗必须来自同一次运行;不得把新运行的能耗附加到旧性能点上。手动 `e2e-tests.yml` 产物仍须经过正常审查和入库流程,才会显示在 Dashboard 中。

B200 Kimi 配方采用 DCP8,且关闭 Mooncake Offload。Master Config 记录 `dcp-size: 8` 和 `kv-offloading: none` 以匹配实际命令;这项元数据修正不会启用 Offload。

## PR 主标签与修饰标签

同仓库 PR 无论处于草稿还是 ready 状态,都由 sweep 标签授权 GPU 运行。草稿状态控制是否开始审阅,不决定 sweep 资格;fork PR 仍使用受信任调度路径。添加 sweep 标签或在保留标签时推送提交可以启动 sweep。标记为 ready 不会调度或重复运行。已带标签但尚无运行的草稿,可先移除再重新添加对应 sweep 标签来启动。
Expand Down
18 changes: 18 additions & 0 deletions perf-changelog.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7594,3 +7594,21 @@
- "Avoid recursive TileRT eval dispatch and preserve evaluation failures after artifact staging."
- "避免 TileRT 评测分发无限递归,并在保存产物后保留评测失败状态。"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3067

- config-keys:
- kimik3-fp4-gb300-dynamo-vllm-agentic-dspark-mooncake-dcp8-disagg
scenario-type:
- agentic-coding
description:
- "Enable required telemetry on the four GB300 disaggregated recipes using the launcher and collector introduced below this draft in the stack. Preserve the original bilingual backfill and validation guidance."
- "为 GB300 Kimi-K3 分离部署启用必需实测功耗。"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3047

- config-keys:
- kimik3-fp4-gb300-dynamo-vllm-agentic-dspark-mooncake-dcp8-disagg
scenario-type:
- agentic-coding
description:
- "Move the GB300 disaggregated DCGM exporter to port 19401 to avoid the system listener on 9401. Preserve prefill/decode telemetry grouping; full disaggregated hardware qualification remains pending."
- "GB300 分离部署的 DCGM exporter 改用 19401,避免与 9401 系统服务冲突;保留 prefill/decode 分组,完整硬件验证仍待完成。"
pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3047
Loading