Skip to content

[plugin][benchmark][dashboard] Enable performance dashboard for ATOM OOT mode#352

Draft
zejunchen-zejun wants to merge 3 commits intomainfrom
zejun/add_benchmark
Draft

[plugin][benchmark][dashboard] Enable performance dashboard for ATOM OOT mode#352
zejunchen-zejun wants to merge 3 commits intomainfrom
zejun/add_benchmark

Conversation

@zejunchen-zejun
Copy link
Contributor

No description provided.

Copilot AI review requested due to automatic review settings March 18, 2026 12:59
@zejunchen-zejun zejunchen-zejun marked this pull request as draft March 18, 2026 12:59
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an out-of-tree (OOT) vLLM benchmarking workflow and updates the benchmark summarization + dashboard pipeline so OOT and native (“ATOM”) results can coexist and be compared without collisions.

Changes:

  • Introduces a new scheduled + manual GitHub Actions workflow to build an OOT benchmark image, run a model/config matrix, and publish results to the existing benchmark dashboard.
  • Extends the benchmark summarizer and dashboard UI to treat “backend” (ATOM vs OOT) as a first-class dimension for sorting, keys, filters, and trend views.
  • Adds OOT-specific model config JSON and a converter script to generate github-action-benchmark input from OOT JSON outputs.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.github/workflows/atom-vllm-oot-benchmark.yaml New OOT benchmark workflow: build/push image, run benchmark matrix, summarize/regress, and publish to dashboard.
.github/scripts/summarize.py Adds backend-aware sorting/config keys and reporting so OOT/native results don’t collide.
.github/scripts/oot_benchmark_to_dashboard.py New converter from OOT result JSONs to github-action-benchmark input format.
.github/scripts/atom_test.sh Injects benchmark_backend=ATOM into native benchmark result JSON for downstream tooling.
.github/scripts/atom_oot_test.sh Adjusts OOT server launch defaults and per-model args used by CI/workflows.
.github/dashboard/index.html Updates dashboard parsing, filtering, rendering, and trends to include a backend dimension.
.github/benchmark/oot_models.json New OOT benchmark model matrix definitions (runner/model/args/env).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +82 to +92
IFS=';' read -ra SETS <<< "${PARAM_LISTS}"
MATRIX_JSON="["
SEP=""
for SET in "${SETS[@]}"; do
IFS=',' read -ra PARAMS <<< "$SET"
INPUT_LEN="${PARAMS[0]}"
OUTPUT_LEN="${PARAMS[1]}"
CONCURRENCY="${PARAMS[2]}"
RANDOM_RANGE_RATIO="${PARAMS[3]}"
MATRIX_JSON="${MATRIX_JSON}${SEP}{\"input_length\":${INPUT_LEN},\"output_length\":${OUTPUT_LEN},\"concurrency\":${CONCURRENCY},\"random_range_ratio\":${RANDOM_RANGE_RATIO}}"
SEP=","
Comment on lines +357 to +359
rm -rf .oot-benchmark/bench_serving
mkdir -p .oot-benchmark
git clone --depth 1 "${BENCH_SERVING_REPO_URL}" .oot-benchmark/bench_serving
Comment on lines +137 to +142
RUN git clone --depth 1 https://github.com/ROCm/aiter.git /app/aiter-test && \\
cd /app/aiter-test && \\
git checkout HEAD && \\
git submodule sync && git submodule update --init --recursive && \\
MAX_JOBS=64 PREBUILD_KERNELS=0 GPU_ARCHS=gfx950 python3 setup.py develop
RUN echo "=== Aiter version AFTER installation ===" && pip show amd-aiter || true
Comment on lines +12 to +14
VARIANT_RE = re.compile(r"-(mtp\d*)-")
DEFAULT_BACKEND = "OOT"

Comment on lines 180 to 188
nohup vllm serve "${resolved_model_path}" \
--host "${VLLM_HOST}" \
--port "${VLLM_PORT}" \
--async-scheduling \
--load-format fastsafetensors \
--max-model-len 16384 \
"${extra_arg_array[@]}" \
--kv-cache-dtype fp8 \
--gpu-memory-utilization 0.9 \
> "${VLLM_LOG_FILE}" 2>&1 &
Comment on lines 95 to 101
def _config_key(data):
"""Unique identifier for matching a benchmark configuration across runs."""
return (
_backend_name(data),
_display_model(data),
int(data.get("random_input_len", 0)),
int(data.get("random_output_len", 0)),
…OOT mode

Signed-off-by: zejunchen-zejun <zejun.chen@amd.com>
Signed-off-by: zejunchen-zejun <zejun.chen@amd.com>
Signed-off-by: zejunchen-zejun <zejun.chen@amd.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants