From 19191940e65f71e3748525bf64da6961a13c3e5a Mon Sep 17 00:00:00 2001 From: Gahow Wang Date: Thu, 28 May 2026 19:23:16 +0800 Subject: [PATCH] A/B x migration matrix runner (parameterized run_v3_trace.sh + wrapper) --- .../connector_tax/layerwise/run_ab_matrix.sh | 33 +++++++++++++++++++ .../connector_tax/layerwise/run_v3_trace.sh | 9 +++-- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100755 microbench/connector_tax/layerwise/run_ab_matrix.sh diff --git a/microbench/connector_tax/layerwise/run_ab_matrix.sh b/microbench/connector_tax/layerwise/run_ab_matrix.sh new file mode 100755 index 0000000..91b0bb2 --- /dev/null +++ b/microbench/connector_tax/layerwise/run_ab_matrix.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# A/B x migration matrix on the 1200-req trace (sequential, ~47 min each). +# 1. unified (no A/B, no migration) anchor +# 2. unified + A+B (documented champion, no mig) +# 3. unified_v3 + A+B + layer-wise (champion + cheap mig) +# We already have: unified_v3 + layer-wise (no A/B) from the prior run. +# +# Q1 (migration benefit w/ layer-wise): #1 vs prior v3+layerwise(noAB) +# Q2 (does migration add to champion): #2 vs #3 +set -uo pipefail +PROJ_DIR="${PROJ_DIR:-/home/admin/cpfs/wjh/agentic-kv}" +R="$PROJ_DIR/microbench/connector_tax/layerwise/run_v3_trace.sh" +AB="--overload-factor 1.3 --lmetric-decode-weight 0.01" +LOGD=/tmp/dst_break_logs; mkdir -p "$LOGD" + +echo "########## 1/3 unified plain ##########" +TAG=unified_plain POLICY=unified MODE=baseline AB_FLAGS="" \ + bash "$R" 2>&1 | tee "$LOGD/abmatrix_1_unified_plain.log" | tail -6 + +echo "########## 2/3 unified + A+B ##########" +TAG=unified_AB POLICY=unified MODE=baseline AB_FLAGS="$AB" \ + bash "$R" 2>&1 | tee "$LOGD/abmatrix_2_unified_AB.log" | tail -6 + +echo "########## 3/3 unified_v3 + A+B + layer-wise ##########" +TAG=v3_AB_lw POLICY=unified_v3 MODE=layerwise AB_FLAGS="$AB" \ + bash "$R" 2>&1 | tee "$LOGD/abmatrix_3_v3_AB_lw.log" | tail -6 + +echo "########## MATRIX DONE ##########" +for t in unified_plain unified_AB v3_AB_lw; do + D=$(ls -dt "$PROJ_DIR"/outputs/v3trace_${t}_*/unified_v3 2>/dev/null | head -1) + echo "=== $t ($D) ===" + sed -n '/\[stats\]/,/\[done\]/p' "$LOGD"/abmatrix_*_${t}.log 2>/dev/null | grep -E "requests:|TTFT|migrations:" || true +done diff --git a/microbench/connector_tax/layerwise/run_v3_trace.sh b/microbench/connector_tax/layerwise/run_v3_trace.sh index f8db56f..19f09dd 100755 --- a/microbench/connector_tax/layerwise/run_v3_trace.sh +++ b/microbench/connector_tax/layerwise/run_v3_trace.sh @@ -11,12 +11,15 @@ set -uo pipefail MODE="${MODE:-baseline}" +POLICY="${POLICY:-unified_v3}" +AB_FLAGS="${AB_FLAGS:-}" # e.g. "--overload-factor 1.3 --lmetric-decode-weight 0.01" +TAG="${TAG:-$MODE}" PROJ_DIR="${PROJ_DIR:-/home/admin/cpfs/wjh/agentic-kv}" VENV="$PROJ_DIR/.venv" VLLM_ROOT="$VENV/lib/python3.12/site-packages/vllm" TRACE="${TRACE:-$PROJ_DIR/traces/w600_r0.0015_st30.jsonl}" DATE="$(date +%Y%m%d_%H%M)" -OUTROOT="${OUTROOT:-$PROJ_DIR/outputs/v3trace_${MODE}_${DATE}}" +OUTROOT="${OUTROOT:-$PROJ_DIR/outputs/v3trace_${TAG}_${DATE}}" PYTHON="$VENV/bin/python" DR_FIX="$PROJ_DIR/microbench/connector_tax/cache_sweep/apply_direct_read_fix.py" MC_FILE="$VLLM_ROOT/distributed/kv_transfer/kv_connector/v1/mooncake/mooncake_connector.py" @@ -61,8 +64,8 @@ echo "[DR-fix] apply" "$PYTHON" "$DR_FIX" --apply --vllm-root "$VLLM_ROOT" export VLLM_MOONCAKE_DISABLE_DIRECT_READ_SYNC=1 -echo "[run] unified_v3 (MOONCAKE_LAYERWISE=${MOONCAKE_LAYERWISE:-0} EAR_WRITE_MODE=${EAR_WRITE_MODE:-0})" -bash "$PROJ_DIR/scripts/b3_isolated_policy.sh" "unified_v3" "$TRACE" "$cfg_dir" \ +echo "[run] $POLICY AB=[$AB_FLAGS] (MOONCAKE_LAYERWISE=${MOONCAKE_LAYERWISE:-0} EAR_WRITE_MODE=${EAR_WRITE_MODE:-0})" +EXTRA_PROXY_ARGS="$AB_FLAGS" bash "$PROJ_DIR/scripts/b3_isolated_policy.sh" "$POLICY" "$TRACE" "$cfg_dir" \ 2>&1 | tee "$cfg_dir/orchestrator.log" | tail -20 pkill -9 -f cache_aware_proxy 2>/dev/null || true