Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
eb6327c
feat(power): wire H200 multinode AgentX power
edwingao28 Aug 19, 2026
8073ca3
fix(power): pin finalized multinode producer
edwingao28 Aug 20, 2026
e537214
feat(power): enable optional B200 and B300 telemetry
edwingao28 Aug 20, 2026
5871fae
chore(power): link B200 and B300 rollout
edwingao28 Aug 20, 2026
c0c3a93
chore(power): merge main into B200 and B300 rollout
edwingao28 Aug 20, 2026
195508e
chore(power): merge main into B200 and B300 rollout
edwingao28 Aug 20, 2026
8092a44
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 24, 2026
a52acf5
feat(power): require B200 and B300 multinode telemetry
edwingao28 Aug 24, 2026
061be28
fix(power): keep non-power H200 GLM AgentX runs on srt-slurm v1.0.44
edwingao28 Aug 24, 2026
6ad27dd
docs(power): record H200 launcher as a POWER_SRT_SLURM_PIN source of …
edwingao28 Aug 24, 2026
3002e07
Merge remote-tracking branch 'fork/feat/h200-multinode-agentx-power' …
edwingao28 Aug 24, 2026
f63d77a
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 24, 2026
f4f3e80
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 25, 2026
538e3f6
ci(power): keep explicit dsv4 h200 recipe path in process-result filter
edwingao28 Aug 25, 2026
f6f9607
fix(ci): import the DCGM exporter via enroot registry syntax
edwingao28 Aug 25, 2026
f791a15
fix(ci): bind dsv4 vllm power runs via CUDA_VISIBLE_DEVICES
edwingao28 Aug 25, 2026
52f909d
fix(ci): skip srtctl preflight for dsv4 vllm on nscale
edwingao28 Aug 25, 2026
5dc8bb2
docs(ci): state the provenance rationale for the CVD binding knob
edwingao28 Aug 25, 2026
38fc849
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 25, 2026
76c54dd
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 26, 2026
b2e6fb0
Merge remote-tracking branch 'origin/main' into feat/b200-b300-agentx…
edwingao28 Aug 26, 2026
c99c52c
fix(ci): resolve changelog markers and track renamed b200-dgxc runner…
edwingao28 Aug 26, 2026
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
15 changes: 14 additions & 1 deletion .github/workflows/test-process-result.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,20 @@ on:
- '.github/workflows/e2e-tests.yml'
- '.github/workflows/test-process-result.yml'
- 'benchmarks/benchmark_lib.sh'
- 'configs/nvidia-master.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/sglang/deepseek-v4/**/*.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/vllm/deepseek-v4/**/*.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/vllm/kimi-k2.6/b200-fp4/**/*.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/sglang/glm5.2/agentic/disagg-h200-2p2d-pcp8-tp8-dp8-mtp.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/sglang/qwen3.5/gb200-fp8/8k1k/1p1d-tp4-tp4.yaml'
- 'benchmarks/multi_node/srt-slurm-recipes/sglang/qwen3.5/gb300-fp8/8k1k/1p1d-tp4-tp4.yaml'
- 'runners/launch_gb200-nv.sh'
- 'runners/launch_gb300-nv.sh'
- 'runners/launch_b200-dgxc.sh'
- 'runners/launch_b200-nscale-slurm.sh'
- 'runners/launch_b300-nv.sh'
- 'runners/launch_h200-dgxc-slurm.sh'
- 'runners/inject_srt_power_concurrencies.py'
- 'utils/aggregate_power.py'
- 'utils/aggregate_power_multinode.py'
- 'utils/agentic/aggregation/power_adapter.py'
Expand All @@ -24,8 +34,11 @@ on:
- 'utils/process_result.py'
- 'utils/test_aggregate_power.py'
- 'utils/test_aggregate_power_multinode.py'
- 'utils/test_b200_b300_power_official_contract.py'
- 'utils/test_gb200_power_official_contract.py'
- 'utils/test_gb300_power_official_contract.py'
- 'utils/test_h200_power_official_contract.py'
- 'utils/test_inject_srt_power_concurrencies.py'
- 'utils/test_process_result.py'

permissions:
Expand Down Expand Up @@ -54,4 +67,4 @@ jobs:
- name: Run pytest
run: |
cd utils
python -m pytest test_aggregate_power.py test_aggregate_power_multinode.py agentic/aggregation/test_power_adapter.py agentic/aggregation/test_power_lifecycle.py agentic/aggregation/test_process_agentic_result.py test_gb200_power_official_contract.py test_gb300_power_official_contract.py test_process_result.py -v
python -m pytest test_aggregate_power.py test_aggregate_power_multinode.py agentic/aggregation/test_power_adapter.py agentic/aggregation/test_power_lifecycle.py agentic/aggregation/test_process_agentic_result.py test_b200_b300_power_official_contract.py test_gb200_power_official_contract.py test_gb300_power_official_contract.py test_h200_power_official_contract.py test_inject_srt_power_concurrencies.py test_process_result.py -v
47 changes: 45 additions & 2 deletions benchmarks/benchmark_lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2190,11 +2190,16 @@ run_agentic_replay_and_write_outputs() (
local validation_rc
local power_rc=0
local agentx_power_enabled=0
local agentx_multinode_power_enabled=0
local agentx_monitor_stopped=1

case "${ENABLE_AGENTX_POWER:-1}" in
1|true|TRUE|yes|YES)
if [ "${IS_MULTINODE:-false}" != "true" ]; then
if [ "${IS_MULTINODE:-false}" = "true" ]; then
if [ -n "${SRT_MEASUREMENT_WINDOW_DIR:-}" ]; then
agentx_multinode_power_enabled=1
fi
else
agentx_power_enabled=1
fi
;;
Expand All @@ -2207,11 +2212,42 @@ run_agentic_replay_and_write_outputs() (
fi
}

if [ "$agentx_power_enabled" = "1" ]; then
_write_agentx_multinode_window() {
local state="$1"
local -a power_args
power_args=(
--result-dir "$result_dir"
--concurrency "${CONC:?CONC must be set for multinode AgentX power}"
--write-multinode-window "$state"
)
case "${REQUIRE_POWER:-0}" in
1|true|TRUE|yes|YES) power_args+=(--require-power) ;;
esac
(
cd "$INFMAX_CONTAINER_WORKSPACE"
"$AIPERF_PYTHON" -m utils.agentic.aggregation.power_adapter "${power_args[@]}"
)
}

if [ "$agentx_power_enabled" = "1" ] || [ "$agentx_multinode_power_enabled" = "1" ]; then
# AIPerf currently exports naive local datetimes while SMI emits the
# same host wall clock. Capture the launch-time offset so the adapter
# can attach it explicitly before normalizing the profiling window.
date +%z > "$result_dir/agentic_power_timezone_offset.txt"
fi

if [ "$agentx_multinode_power_enabled" = "1" ]; then
set +e
_write_agentx_multinode_window running
power_rc=$?
set -e
if [ "$power_rc" -ne 0 ]; then
echo "ERROR: failed to publish the AgentX formal running power window" >&2
return "$power_rc"
fi
fi

if [ "$agentx_power_enabled" = "1" ]; then
start_gpu_monitor --output "$result_dir/gpu_metrics.csv"
agentx_monitor_stopped=0
# This function runs in a subshell, so these handlers cannot replace
Expand All @@ -2238,6 +2274,13 @@ run_agentic_replay_and_write_outputs() (

write_agentic_result_json "$result_dir"

if [ "$agentx_multinode_power_enabled" = "1" ] && [ "$replay_rc" -eq 0 ]; then
set +e
_write_agentx_multinode_window completed
power_rc=$?
set -e
fi

if [ "$agentx_power_enabled" = "1" ]; then
local expected_num_gpus
local -a power_args
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 9401
Comment thread
edwingao28 marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 9401
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 9401
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 9401
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 9401
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,16 @@ benchmark:
req_rate: "inf"
use_chat_template: false
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,16 @@ benchmark:
req_rate: "inf"
use_chat_template: false
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,16 @@ benchmark:
req_rate: "inf"
use_chat_template: false
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,16 @@ benchmark:
req_rate: "inf"
use_chat_template: false
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,16 @@ benchmark:
req_rate: "inf"
use_chat_template: true
custom_tokenizer: "sa_bench_tokenizers.sglang_deepseek_v4.SGLangDeepseekV4Tokenizer"

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: 10
dcgm_exporter:
container_image: dcgm-exporter
port: 19401
Loading
Loading