Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 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
0bc3851
feat(amd): port DSV4 AgentX to srt-slurm
cquil11 Aug 27, 2026
4e5108f
fix(mi355x): bound DSV4 TP8 HiCache host memory
cquil11 Aug 27, 2026
3d556e0
fix(mi355x): preserve proven DSV4 serving config
cquil11 Aug 27, 2026
77480bd
fix(amd): preserve AgentX eight-hour job budget
cquil11 Aug 28, 2026
1b71cb4
fix(amd): preserve DSV4 AgentX runtime contract
cquil11 Aug 31, 2026
e1329a4
fix(amd): record writable eval runtime pin
cquil11 Aug 31, 2026
aed36b6
fix(amd): stage srt eval result artifacts
cquil11 Aug 31, 2026
82f3781
fix(amd): propagate srt lm-eval artifact sink
cquil11 Sep 1, 2026
30258a0
Merge remote-tracking branch 'origin/agent/srt-slurm-amd-integration'…
cquil11 Sep 1, 2026
9092e3d
fix(amd): pass eval result sink through srt
cquil11 Sep 1, 2026
c2592a3
Merge remote-tracking branch 'origin/agent/srt-slurm-amd-integration'…
cquil11 Sep 1, 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 @@ -369,6 +369,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
5 changes: 5 additions & 0 deletions .github/workflows/benchmark-tmpl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,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 @@ -1010,7 +1010,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 @@ -42,6 +42,60 @@ done
resolve_trace_source
install_agentic_deps

# 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

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

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
}

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 @@ -125,6 +179,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
Comment thread
cursor[bot] marked this conversation as resolved.
clear_agentic_worker_caches
fi
build_replay_cmd "$RESULT_DIR"
run_agentic_replay_and_write_outputs "$RESULT_DIR"

Expand Down
Loading
Loading