Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0a89453
refactor(amd): centralize MI355X srt-slurm runtime
cquil11 Aug 27, 2026
0674eaa
fix(amd): stream srt-slurm stdout in Actions
cquil11 Aug 27, 2026
6439c63
fix(amd): preserve fixed-seq launch semantics
cquil11 Aug 27, 2026
d0b0f31
fix(amd): reclaim stale hugepages before srt workers
cquil11 Aug 28, 2026
429de0f
fix(ci): reclaim legacy AMD runner files before checkout
cquil11 Aug 28, 2026
190a387
fix(amd): pin lm-eval pip compatibility
cquil11 Aug 29, 2026
74c0c85
fix(amd): pin eval framework runtime
cquil11 Aug 31, 2026
c94d0a4
fix(amd): preserve legacy AgentX fabric semantics
cquil11 Aug 31, 2026
2a10192
fix(amd): pin writable lm-eval cache runtime
cquil11 Aug 31, 2026
847c80f
fix(amd): retain srt lm-eval result artifacts
cquil11 Aug 31, 2026
539f2fa
fix(amd): use srt lm-eval result contract
cquil11 Aug 31, 2026
09f2299
Merge remote-tracking branch 'origin/main' into codex/base-pin-eval
cquil11 Aug 31, 2026
82f3781
fix(amd): propagate srt lm-eval artifact sink
cquil11 Sep 1, 2026
9092e3d
fix(amd): pass eval result sink through srt
cquil11 Sep 1, 2026
3521b76
merge: sync AMD srt integration with main
cquil11 Sep 1, 2026
eac80c2
merge: sync AMD srt integration with latest main
cquil11 Sep 1, 2026
cdb9e5f
fix(amd): forward workflow random workload ratio to srt benchmarks
cquil11 Sep 1, 2026
80aa871
Merge latest main into AMD srt-slurm integration
cquil11 Sep 2, 2026
1bb89eb
fix(amd): preserve native RDMA and ATOM launch contracts
cquil11 Sep 2, 2026
5f50845
Merge latest main into AMD srt-slurm integration
cquil11 Sep 3, 2026
0f390f6
fix(amd): pin native ATOMesh startup correction
cquil11 Sep 3, 2026
01676c3
fix(amd): isolate host Python cache from Slurm containers
cquil11 Sep 3, 2026
38be99b
fix(amd): restore RDMA memlock and ATOM evaluation identity
cquil11 Sep 3, 2026
1e693fe
refactor(amd): use one srt-slurm entry point without host repair
cquil11 Sep 3, 2026
bd00831
Merge remote-tracking branch 'origin/main' into codex/amd-base-resume…
cquil11 Sep 3, 2026
31ed6ec
fix(amd): expose recipe assets to native srt-slurm setup hooks
cquil11 Sep 4, 2026
3684ab6
Revert recipe asset mount; use official ATOM images only
cquil11 Sep 4, 2026
0d7ca6f
Merge latest main into the shared AMD integration
cquil11 Sep 4, 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
5 changes: 5 additions & 0 deletions .github/workflows/benchmark-multinode-tmpl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,11 @@ jobs:
# git dir whose HEAD does not resolve to a commit is dropped
# together with its worktree so checkout re-clones it.
repo_dir="${{ github.workspace }}"
legacy_amd_dir="${repo_dir}/benchmarks/multi_node/amd_utils"
if [ -d "${legacy_amd_dir}" ] && [ -n "$(find "${legacy_amd_dir}" -xdev \! -user "$(id -u)" -print -quit)" ]; then
echo "[git-repair] Reclaiming legacy AMD workspace files created by containers"
sudo -n chown -R "$(id -u):$(id -g)" "${legacy_amd_dir}"
fi
Comment thread
cursor[bot] marked this conversation as resolved.
if [ -d "${repo_dir}/.git" ]; then
find "${repo_dir}/.git" -name index.lock -type f -delete || true
for gitdir in "${repo_dir}"/.git/modules/* "${repo_dir}"/.git/modules/*/*; do
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/benchmark-tmpl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,11 @@ jobs:
# git dir whose HEAD does not resolve to a commit is dropped
# together with its worktree so checkout re-clones it.
repo_dir="${{ github.workspace }}"
legacy_amd_dir="${repo_dir}/benchmarks/multi_node/amd_utils"
if [ -d "${legacy_amd_dir}" ] && [ -n "$(find "${legacy_amd_dir}" -xdev \! -user "$(id -u)" -print -quit)" ]; then
echo "[git-repair] Reclaiming legacy AMD workspace files created by containers"
sudo -n chown -R "$(id -u):$(id -g)" "${legacy_amd_dir}"
fi
if [ -d "${repo_dir}/.git" ]; then
find "${repo_dir}/.git" -name index.lock -type f -delete || true
for gitdir in "${repo_dir}"/.git/modules/* "${repo_dir}"/.git/modules/*/*; do
Expand Down
6 changes: 5 additions & 1 deletion benchmarks/benchmark_lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2108,7 +2108,11 @@ run_lm_eval() {
export INFERENCEX_LM_EVAL_RUNTIME_READY=true
fi

local openai_server_base="http://0.0.0.0:${port}"
# Most launchers run eval beside the API process and keep the historical
# 0.0.0.0 default. Orchestrators such as srt-slurm can place the benchmark
# client on a different node, so allow them to provide the routed host.
local openai_server_host="${EVAL_SERVER_HOST:-0.0.0.0}"
local openai_server_base="http://${openai_server_host}:${port}"
local openai_chat_base="${openai_server_base}/v1/chat/completions"
export OPENAI_API_KEY=${OPENAI_API_KEY:-EMPTY}
MODEL_NAME=${MODEL_NAME:-$MODEL} # Prefer MODEL_NAME, else MODEL
Expand Down
177 changes: 0 additions & 177 deletions benchmarks/multi_node/agentic/dsv4_fp4_mi355x_sglang-disagg.sh

This file was deleted.

57 changes: 57 additions & 0 deletions benchmarks/multi_node/agentic_srt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,60 @@ if [[ "${EVAL_ONLY:-false}" == "true" ]]; then
_wait_for_openai_chat_route --port "$PORT"
fi

# Preserve the legacy DP-attention replay contract. The SGLang router uses this
# header to keep every request in one AgentX correlation tree on a stable DP
# route, which is important for both session continuity and prefix-cache reuse.
if [[ "${PREFILL_DP_ATTN:-false}" == "true" ]]; then
export AIPERF_HTTP_X_SMG_ROUTING_KEY_FROM_CORRELATION_ID=true
fi

# Reset every advertised SGLang worker before each concurrency point, matching
# the retired amd_utils trace replay. /flush_cache covers GPU radix + host
# HiCache; the storage-backend endpoint is best-effort because L3 is optional.
clear_agentic_worker_caches() {
local timeout_seconds="${FLUSH_DRAIN_TIMEOUT:-120}"
local metrics_csv="${AIPERF_SERVER_METRICS_URLS:-}"
if [[ -z "$metrics_csv" ]]; then
echo "[clear_caches] WARN: AIPERF_SERVER_METRICS_URLS unset; skipping cache flush" >&2
return 0
fi
Comment thread
cursor[bot] marked this conversation as resolved.

local -a metrics_urls
IFS=',' read -r -a metrics_urls <<< "$metrics_csv"
local metrics_url base_url start response code flushed
for metrics_url in "${metrics_urls[@]}"; do
[[ -n "$metrics_url" ]] || continue
base_url="${metrics_url%/metrics}"
start=$(date +%s)
flushed=0
response=""
while :; do
response=$(curl -sf -m 10 -X POST "${base_url}/flush_cache" 2>/dev/null || true)
if grep -qi "Cache flushed" <<< "$response"; then
flushed=1
break
fi
if (( $(date +%s) - start >= timeout_seconds )); then
break
fi
sleep 3
done
if (( flushed )); then
echo "[clear_caches] ${base_url}: L1+L2 flushed"
else
echo "[clear_caches] WARN ${base_url}: L1+L2 flush not confirmed after ${timeout_seconds}s" >&2
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cache flush match can stall replay

Medium Severity

clear_agentic_worker_caches treats a flush as successful only when the body contains Cache flushed. A 2xx response with empty or JSON text keeps retrying until FLUSH_DRAIN_TIMEOUT, adding about two minutes per worker at every concurrency point, then continues without a confirmed L1/L2 reset.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 1bb89eb. Configure here.


code=$(curl -s -m 60 -o /dev/null -w '%{http_code}' \
-X POST "${base_url}/hicache/storage-backend/clear" 2>/dev/null || true)
if [[ "$code" == "200" ]]; then
echo "[clear_caches] ${base_url}: L3 store cleared"
else
echo "[clear_caches] ${base_url}: L3 clear http=${code:-000} (optional backend unavailable)"
fi
done
}
Comment thread
cursor[bot] marked this conversation as resolved.

wait_for_agentic_servers_idle() {
local timeout_seconds="${AIPERF_DRAIN_TIMEOUT_SECONDS:-1800}"
local poll_seconds="${AIPERF_DRAIN_POLL_SECONDS:-10}"
Expand Down Expand Up @@ -145,6 +199,9 @@ for index in "${!CONCURRENCIES[@]}"; do
mkdir -p "$RESULT_DIR"

echo "Running agentic concurrency $concurrency of: ${CONCURRENCIES[*]}"
if [[ "${CLEAR_CACHE_BETWEEN_CONC:-1}" == "1" ]]; then
clear_agentic_worker_caches
fi
build_replay_cmd "$RESULT_DIR"
run_agentic_replay_and_write_outputs "$RESULT_DIR"

Expand Down
Loading