Skip to content

Commit 7b0b9bd

Browse files
authored
Merge branch 'main' into amd/agentx_dsv4_sgl_mtp_0717
2 parents bb4f45f + a141bfc commit 7b0b9bd

37 files changed

Lines changed: 2909 additions & 441 deletions

.github/workflows/collectivex-sweep.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ on:
2323
description: Keep only shards whose expert-parallel degree is in this comma-list (8 keeps EP8 only, dropping EP16 so GB SKUs co-schedule with 8-GPU SKUs; blank = all)
2424
type: string
2525
default: ''
26+
modes:
27+
description: "Keep only shards in this comma-list of modes (normal, low-latency); low-latency is a decode-only EP8 addition; blank = all"
28+
type: string
29+
default: ''
2630
concurrency:
2731
group: cx-${{ github.ref }}-${{ inputs.backend }}-${{ inputs.only_sku }}
2832
cancel-in-progress: false
@@ -44,12 +48,14 @@ jobs:
4448
INPUT_ONLY_SKU: ${{ inputs.only_sku }}
4549
INPUT_EXCLUDE_SKUS: ${{ inputs.exclude_skus }}
4650
INPUT_EP_SIZES: ${{ inputs.ep_sizes }}
51+
INPUT_MODES: ${{ inputs.modes }}
4752
run: |
4853
set -euo pipefail
4954
args=(--backend "$INPUT_BACKEND")
5055
[ -n "$INPUT_ONLY_SKU" ] && args+=(--only-sku "$INPUT_ONLY_SKU")
5156
[ -n "$INPUT_EXCLUDE_SKUS" ] && args+=(--exclude-skus "$INPUT_EXCLUDE_SKUS")
5257
[ -n "$INPUT_EP_SIZES" ] && args+=(--ep-sizes "$INPUT_EP_SIZES")
58+
[ -n "$INPUT_MODES" ] && args+=(--modes "$INPUT_MODES")
5359
python3 sweep_matrix.py "${args[@]}" --out matrix_full.json >/dev/null
5460
python3 - "$GITHUB_OUTPUT" <<'PY'
5561
import json
@@ -94,10 +100,10 @@ jobs:
94100
COLLX_SHARD_SKU: ${{ matrix.sku }}
95101
COLLECTIVEX_CANONICAL_GHA: '1'
96102
COLLECTIVEX_SOURCE_SHA: ${{ github.sha }}
97-
# Consolidated shards run one bounded build-group in one Slurm allocation.
98-
# MI300X's compute partition has a 180-minute ceiling; the other production
99-
# pools accept 300 minutes. Allocations release as soon as the shard finishes.
100-
COLLX_TIME: ${{ matrix.sku == 'mi300x' && '180' || '300' }}
103+
# Consolidated shards run one bounded build-group in one Slurm allocation;
104+
# every production pool accepts 300 minutes. Allocations release as soon as
105+
# the shard finishes.
106+
COLLX_TIME: '300'
101107
COLLECTIVEX_EXECUTION_ID: ${{ github.run_id }}_${{ github.run_attempt }}_${{ matrix.id }}
102108
COLLX_JOB_PARENT: ${{ matrix.launcher == 'mi-amds' && format('/tmp/inferencex-collectivex-parent-{0}-{1}-{2}', github.run_id, github.run_attempt, matrix.id) || '/tmp' }}
103109
COLLX_JOB_ROOT: ${{ matrix.launcher == 'mi-amds' && format('/tmp/inferencex-collectivex-parent-{0}-{1}-{2}/inferencex-collectivex-{0}-{1}-{2}', github.run_id, github.run_attempt, matrix.id) || format('/tmp/inferencex-collectivex-{0}-{1}-{2}', github.run_id, github.run_attempt, matrix.id) }}

.github/workflows/run-sweep.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,7 @@ jobs:
581581
kv-offloading: ${{ matrix.config.kv-offloading }}
582582
kv-offload-backend: ${{ matrix.config['kv-offload-backend'].name }}
583583
kv-offload-backend-metadata: ${{ matrix.config['kv-offload-backend'] && toJson(matrix.config['kv-offload-backend']) || '' }}
584+
total-cpu-dram-gb: ${{ matrix.config['total-cpu-dram-gb'] }}
584585
duration: ${{ matrix.config.duration }}
585586
run-eval: false
586587
scenario-type: agentic-coding
Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
#!/usr/bin/env bash
2+
3+
# Agentic trace-replay recipe for a disaggregated SGLang server on MI355X
4+
# (DeepSeek-V4-Pro FP4, 1P1D TP8).
5+
#
6+
# CI-style sibling of dsr1_fp4_mi355x_sglang-disagg.sh: driven entirely by
7+
# environment variables and submits a SLURM job via submit.sh. The agentic /
8+
# HiCache-offload configuration mirrors the DSR1 recipe but uses DSV4-Pro
9+
# specific flags (dsv4 attention backend, page-size 256, SWA settings).
10+
11+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12+
source "$SCRIPT_DIR/../../benchmark_lib.sh"
13+
14+
check_env_vars \
15+
CONC_LIST \
16+
ISL \
17+
OSL \
18+
IMAGE \
19+
SPEC_DECODING \
20+
MODEL_PATH \
21+
PREFILL_NUM_WORKERS \
22+
PREFILL_TP \
23+
PREFILL_EP \
24+
PREFILL_DP_ATTN \
25+
DECODE_NUM_WORKERS \
26+
DECODE_TP \
27+
DECODE_EP \
28+
DECODE_DP_ATTN \
29+
PREFILL_NODES \
30+
DECODE_NODES \
31+
RANDOM_RANGE_RATIO \
32+
DURATION \
33+
KV_OFFLOADING \
34+
IS_AGENTIC \
35+
FRAMEWORK
36+
37+
if [[ -n "$SLURM_JOB_ID" ]]; then
38+
echo "JOB $SLURM_JOB_ID running on $SLURMD_NODENAME"
39+
fi
40+
41+
set -x
42+
43+
# Use upstreamed multi_node scripts (no external clone needed)
44+
cd "$GITHUB_WORKSPACE/benchmarks/multi_node/amd_utils" || exit 1
45+
46+
# Set up SGL launch script-specific environment variables
47+
export TIME_LIMIT="${TIME_LIMIT:-08:00:00}"
48+
export MODEL_PATH=$MODEL_PATH
49+
export MODEL_NAME=$MODEL_NAME
50+
export CONTAINER_IMAGE=$IMAGE
51+
52+
# ── Identity / result naming ──
53+
export MODEL_PREFIX="${MODEL_PREFIX:-dsv4}"
54+
export PRECISION="${PRECISION:-fp4}"
55+
export RESULT_FILENAME="${RESULT_FILENAME:-${RUNNER_NAME:-dsv4-fp4-agentic}}"
56+
57+
# ── Agentic benchmark params ──
58+
export DURATION="${DURATION:-1800}"
59+
# DSV4-Pro max model len for agentic traces (matches single-node recipe).
60+
export MAX_MODEL_LEN="${MAX_MODEL_LEN:-1000000}"
61+
62+
# ── In-tree sglang patches ──
63+
# mori_conn.py targets hybrid-state bugs (GLM-5, Qwen3.5). DSV4-Pro uses a
64+
# pure MoE/DSA architecture without hybrid state; skip to avoid interference.
65+
export MORI_CONN_PATCH="${MORI_CONN_PATCH:-skip}"
66+
67+
# ── Aiter fault mitigation ──
68+
# --disable-custom-all-reduce avoids a known aiter fault on MI355X.
69+
export DISABLE_CUSTOM_ALL_REDUCE="${DISABLE_CUSTOM_ALL_REDUCE:-0}"
70+
71+
# ── KV cache offloading (HiCache) ──
72+
# KV_OFFLOADING=none | dram (passed from YAML; default none for disagg).
73+
# KV_OFFLOAD_BACKEND selects the backend when offloading is on; this recipe
74+
# only implements HiCache, so "hicache" is the only supported value.
75+
# HICACHE_TIER: L2 -> GPU + CPU-DRAM host pool. L3 -> + Mooncake store.
76+
export KV_OFFLOADING="${KV_OFFLOADING:-none}"
77+
if [[ "$KV_OFFLOADING" != "none" ]]; then
78+
export KV_OFFLOAD_BACKEND="${KV_OFFLOAD_BACKEND:-hicache}"
79+
fi
80+
# HiCache/Mooncake tunables only matter when KV offloading is enabled.
81+
if [[ "$KV_OFFLOADING" != "none" && "${KV_OFFLOAD_BACKEND:-}" == "hicache" ]]; then
82+
export HICACHE_TIER="${HICACHE_TIER:-L2}"
83+
export HICACHE_HOST_POOL_COUNT="${HICACHE_HOST_POOL_COUNT:-1}"
84+
# DSV4 uses page-size 256 (set in models.yaml); HiCache must match.
85+
export HICACHE_PAGE_SIZE="${HICACHE_PAGE_SIZE:-256}"
86+
# HiCache ratio (host pool = ratio * GPU KV pool). Default derived in server_sglang.sh.
87+
export HICACHE_RATIO="${HICACHE_RATIO:-}"
88+
89+
# ── HiCache layout/backend by tier ──
90+
# L3 (Mooncake): page_first + direct + write_through + storage=mooncake
91+
# L2 (CPU DRAM): layer_first + direct + write_through_selective + storage=none
92+
# NOTE: write_through_selective evicts only under GPU memory pressure, avoiding
93+
# the mori RDMA race that causes GPU memory access faults with write_through.
94+
if [[ "${HICACHE_TIER^^}" == "L3" ]]; then
95+
export HICACHE_MEM_LAYOUT="${HICACHE_MEM_LAYOUT:-page_first}"
96+
export HICACHE_IO_BACKEND="${HICACHE_IO_BACKEND:-direct}"
97+
export HICACHE_WRITE_POLICY="${HICACHE_WRITE_POLICY:-write_through}"
98+
export HICACHE_STORAGE_BACKEND="${HICACHE_STORAGE_BACKEND:-mooncake}"
99+
else
100+
export HICACHE_MEM_LAYOUT="${HICACHE_MEM_LAYOUT:-page_first}"
101+
export HICACHE_IO_BACKEND="${HICACHE_IO_BACKEND:-direct}"
102+
export HICACHE_WRITE_POLICY="${HICACHE_WRITE_POLICY:-write_through}"
103+
export HICACHE_STORAGE_BACKEND="${HICACHE_STORAGE_BACKEND:-}"
104+
fi
105+
export HICACHE_PREFETCH_POLICY="${HICACHE_PREFETCH_POLICY:-best_effort}"
106+
# Shared nodes: use non-default Mooncake ports to avoid collisions.
107+
export MC_MASTER_PORT="${MC_MASTER_PORT:-58137}"
108+
export MC_METADATA_PORT="${MC_METADATA_PORT:-8080}"
109+
export MC_METRICS_PORT="${MC_METRICS_PORT:-19003}"
110+
export MC_MASTER_THREADS="${MC_MASTER_THREADS:-64}"
111+
export MC_EVICTION_HIGH_WATERMARK="${MC_EVICTION_HIGH_WATERMARK:-0.95}"
112+
export MC_PATCH_HOSTPOOL="${MC_PATCH_HOSTPOOL:-1}"
113+
export MC_PROTOCOL="${MC_PROTOCOL:-tcp}"
114+
export MC_GLOBAL_SEG="${MC_GLOBAL_SEG:-64gb}"
115+
export MC_DEVICE="${MC_DEVICE:-}"
116+
export MC_MASTER_ADDR="${MC_MASTER_ADDR:-}"
117+
export MC_METADATA_SERVER="${MC_METADATA_SERVER:-}"
118+
fi
119+
120+
# ── MoRIIO RDMA Send Queue tuning ──
121+
export MORI_IO_SQ_BACKOFF_TIMEOUT_US="${MORI_IO_SQ_BACKOFF_TIMEOUT_US:-500000}"
122+
export MORI_IO_QP_MAX_SEND_WR="${MORI_IO_QP_MAX_SEND_WR:-32768}"
123+
124+
# ── SGLang PD router policy + server metrics ──
125+
export PREFILL_ROUTER_POLICY="${PREFILL_ROUTER_POLICY:-cache_aware}"
126+
export ENABLE_METRICS="${ENABLE_METRICS:-1}"
127+
128+
# ── MTP ──
129+
export DECODE_MTP_SIZE="${DECODE_MTP_SIZE:-0}"
130+
131+
# Derive EP/DP enable flags from the topology inputs.
132+
if [[ "${PREFILL_EP:-1}" -eq 1 ]]; then
133+
export PREFILL_ENABLE_EP=false
134+
else
135+
export PREFILL_ENABLE_EP=true
136+
fi
137+
138+
if [[ "$PREFILL_DP_ATTN" == "true" ]]; then
139+
export PREFILL_ENABLE_DP=true
140+
else
141+
export PREFILL_ENABLE_DP=false
142+
fi
143+
144+
if [[ "${DECODE_EP:-1}" -eq 1 ]]; then
145+
export DECODE_ENABLE_EP=false
146+
else
147+
export DECODE_ENABLE_EP=true
148+
fi
149+
150+
if [[ "$DECODE_DP_ATTN" == "true" ]]; then
151+
export DECODE_ENABLE_DP=true
152+
else
153+
export DECODE_ENABLE_DP=false
154+
fi
155+
156+
# Launch the job. CONC_LIST is space-delimited in YAML; submit.sh wants 'x'.
157+
JOB_ID=$(bash ./submit.sh $PREFILL_NODES \
158+
$PREFILL_NUM_WORKERS \
159+
$DECODE_NODES \
160+
$DECODE_NUM_WORKERS \
161+
$ISL $OSL "${CONC_LIST// /x}" inf \
162+
${PREFILL_ENABLE_EP} ${PREFILL_ENABLE_DP} \
163+
${DECODE_ENABLE_EP} ${DECODE_ENABLE_DP} \
164+
${PREFILL_TP} ${DECODE_TP} \
165+
${RANDOM_RANGE_RATIO})
166+
167+
if [[ $? -ne 0 ]]; then
168+
echo "Failed to submit job" >&2
169+
exit 1
170+
fi
171+
172+
echo "$JOB_ID"

benchmarks/multi_node/amd_utils/env.sh

Lines changed: 76 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ set -x
1212
ENGINE="${ENGINE:-sglang-disagg}"
1313
export PYTHONDONTWRITEBYTECODE=1
1414

15+
# =============================================================================
16+
# HiCache / Mooncake settings from job.slurm
17+
# =============================================================================
18+
# job.slurm writes the recipe-provided HiCache/Mooncake tunables to
19+
# hicache_mc_<JID>.env and mounts it read-only at /config/hicache_mc.env. Source
20+
# it here (auto-export) so values like HICACHE_PAGE_SIZE=256 reach the container
21+
# before server_sglang.sh applies its "${VAR:-default}" fallbacks. Without this
22+
# the vars arrive unset and server_sglang.sh defaults HICACHE_PAGE_SIZE to 1,
23+
# overriding the recipe's --page-size. Empty values in the file are harmless:
24+
# the "${VAR:-default}" fallbacks still treat "" as unset.
25+
if [[ -f /config/hicache_mc.env ]]; then
26+
set -a
27+
source /config/hicache_mc.env
28+
set +a
29+
echo "[env.sh] sourced HiCache config from /config/hicache_mc.env (HICACHE_PAGE_SIZE=${HICACHE_PAGE_SIZE:-unset})"
30+
fi
31+
1532
# =============================================================================
1633
# Shared: IBDEVICES detection
1734
# =============================================================================
@@ -50,11 +67,11 @@ export NCCL_IB_HCA=${NCCL_IB_HCA:-$IBDEVICES}
5067
# =============================================================================
5168
# Shared by the vLLM MoRIIOConnector and the SGLang/MoRI KV-transfer path.
5269

53-
export MORI_IO_SQ_BACKOFF_TIMEOUT_US=50000
54-
export MORI_IO_QP_MAX_SEND_WR=16384
55-
export MORI_IO_QP_MAX_CQE=32768
56-
export MORI_IO_QP_MAX_SGE=2
57-
export MORI_IO_TC_DISABLE=0
70+
export MORI_IO_SQ_BACKOFF_TIMEOUT_US="${MORI_IO_SQ_BACKOFF_TIMEOUT_US:-50000}"
71+
export MORI_IO_QP_MAX_SEND_WR="${MORI_IO_QP_MAX_SEND_WR:-16384}"
72+
export MORI_IO_QP_MAX_CQE="${MORI_IO_QP_MAX_CQE:-32768}"
73+
export MORI_IO_QP_MAX_SGE="${MORI_IO_QP_MAX_SGE:-2}"
74+
export MORI_IO_TC_DISABLE="${MORI_IO_TC_DISABLE:-0}"
5875

5976
# QoS/DSCP configuration
6077
# Priority order: 1) Set by runner, 2) Detect via nicctl, 3) Detect from hostname
@@ -197,14 +214,27 @@ else
197214
export AITER_LOG_LEVEL=ERROR
198215

199216
export SGLANG_MORI_DISPATCH_DTYPE=auto
200-
export MORI_COMBINE_DTYPE_PREFILL=fp8_direct_cast
201-
export MORI_COMBINE_DTYPE_DECODE=fp8
217+
# export MORI_COMBINE_DTYPE_PREFILL=fp8_direct_cast
218+
# export MORI_COMBINE_DTYPE_DECODE=fp8
219+
export MORI_COMBINE_DTYPE_PREFILL=""
220+
export MORI_COMBINE_DTYPE_DECODE=""
202221
export SGLANG_MORI_QP_PER_TRANSFER=4
203222
export SGLANG_MORI_NUM_WORKERS=4
223+
# Keep these as overridable defaults (not hard assignments), otherwise
224+
# later tuning blocks cannot raise them for high-concurrency runs.
225+
# export MORI_IO_SQ_BACKOFF_TIMEOUT_US="${MORI_IO_SQ_BACKOFF_TIMEOUT_US:-500000}"
226+
227+
# export MORI_IO_QP_MAX_SEND_WR="${MORI_IO_QP_MAX_SEND_WR:-16384}"
228+
# export MORI_IO_QP_MAX_CQE=32768
229+
# export MORI_IO_QP_MAX_SGE=1
230+
231+
# export MORI_IO_TC_DISABLE=0
204232

205233
export SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT=3600
206234
export SGLANG_DISAGGREGATION_WAITING_TIMEOUT=3600
207235

236+
export SGLANG_HEALTH_CHECK_TIMEOUT=600
237+
208238
# GLM-5: uses NSA (not MLA), needs fused-decode-MLA disabled + fast loading
209239
if [[ "$MODEL_NAME" == "GLM-5-FP8" ]]; then
210240
export SGLANG_ROCM_FUSED_DECODE_MLA=0
@@ -242,15 +272,34 @@ else
242272
# 1 mirrors router logs to stdout via tee (useful for live debugging).
243273
export SGLANG_ROUTER_STDOUT_LOGS="${SGLANG_ROUTER_STDOUT_LOGS:-0}"
244274

275+
# FIXME: WA for latest upstream 0305 image
276+
export PYTHONPATH=/sgl-workspace/aiter:${PYTHONPATH}
277+
245278
# =========================================================================
246279
# DeepSeek-V4-Pro PD recipe overrides
247280
# Placed at the end of the SGLang env block so it wins over the global
248281
# MoRI/SGLang defaults set above. Mirrors the validated DSv4 manual PD
249-
# commands (see dsv4_mi355x_sglang_disagg_plan.md §2). Only the SGLang/MoRI
250-
# env knobs are pinned here; CLI flags live in models.yaml and the cluster
251-
# NIC/socket vars (NCCL_IB_HCA, *_SOCKET_IFNAME, IBDEVICES) stay runner-derived.
282+
# commands (ported from InferenceX amd/dsv4_sgl_di). These SGLANG_OPT_* /
283+
# AITER_* kernel-routing knobs steer DSv4 away from the default aiter CK
284+
# fused-MoE path, which raises "Unsupported kernel config for moe heuristic
285+
# dispatch" at decode time on this fp4 model (job 19034 crash). Only the
286+
# SGLang/MoRI env knobs are pinned here; CLI flags live in models.yaml and
287+
# the cluster NIC/socket vars stay runner-derived.
252288
# =========================================================================
253289
if [[ "$MODEL_NAME" == "DeepSeek-V4-Pro" ]]; then
290+
# MoRI RDMA send-queue depth for DSv4 (overrides the global default above).
291+
export MORI_IO_QP_MAX_SEND_WR=32767
292+
# Unified radix tree: cache impl with per-component (full-attn / SWA)
293+
# management for hybrid-attention models. Set unconditionally (not gated on
294+
# hicache) so all SGLang runs use it.
295+
export SGLANG_ENABLE_UNIFIED_RADIX_TREE=1
296+
# Proactively free out-of-window SWA KV slots during chunked prefill.
297+
# Without it, in-flight requests pin SWA KV for their whole context, keeping
298+
# the SWA pool under constant eviction pressure; under LRU the trailing
299+
# window of cached sessions gets flushed, making prefix-cache hits bimodal
300+
# and collapsing the effective hit rate on multi-turn agentic workloads.
301+
export SGLANG_OPT_UNIFIED_CACHE_FREE_OUT_OF_WINDOW_SLOTS=1
302+
254303
# MoRI dispatch/combine dtypes: auto for both roles (not the fp8 split default)
255304
export SGLANG_MORI_DISPATCH_DTYPE=auto
256305
export MORI_COMBINE_DTYPE_PREFILL=auto
@@ -262,42 +311,44 @@ else
262311
unset MORI_MOE_MAX_INPUT_TOKENS_PREFILL
263312
unset MORI_MOE_MAX_INPUT_TOKENS_DECODE
264313

265-
# PER_RANK dispatch tokens are pinned independently of the sizing above
266-
# (16384 prefill / 128 decode in the reference recipe). server_sglang.sh
267-
# prefers these over the MORI_MAX_DISPATCH_TOKENS_* coupling when set.
314+
# PER_RANK dispatch tokens pinned independently (16384 prefill / 128
315+
# decode); server_sglang.sh prefers these over the MORI_MAX_DISPATCH_*
316+
# coupling when set.
268317
export MORI_NUM_MAX_DISPATCH_TOKENS_PER_RANK_PREFILL=16384
269318
export MORI_NUM_MAX_DISPATCH_TOKENS_PER_RANK_DECODE=128
270319

271-
# Fixed inter-kernel switch threshold (not derived). NOTE: the DP+EP path in
272-
# server_sglang.sh recomputes this dynamically for the DEP topology.
320+
# Fixed inter-kernel switch threshold (not derived).
273321
export SGLANG_MORI_DISPATCH_INTER_KERNEL_SWITCH_THRESHOLD=4096
274322

275323
# Overlap plan stream on for DSv4 (global default is 0)
276-
export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=0
324+
# export SGLANG_ENABLE_OVERLAP_PLAN_STREAM=0
277325

278326
# DSv4 model kernel routing (mirrors the single-node / manual PD recipe)
279327
export SGLANG_DEFAULT_THINKING=1
280-
export SGLANG_DSV4_REASONING_EFFORT=max
281-
export SGLANG_USE_ROCM700A=0
282-
export SGLANG_HACK_FLASHMLA_BACKEND=unified_kv_triton
328+
export SGLANG_DSV4_REASONING_EFFORT=high
283329
export SGLANG_OPT_DEEPGEMM_HC_PRENORM=false
330+
export SGLANG_USE_AITER=1
331+
export SGLANG_USE_ROCM700A=0
284332
export SGLANG_OPT_USE_FUSED_COMPRESS=true
285-
export SGLANG_OPT_USE_FUSED_COMPRESS_TRITON=true
333+
export SGLANG_HACK_FLASHMLA_BACKEND=unified_kv_triton
286334
export SGLANG_OPT_FP8_WO_A_GEMM=false
287335
export SGLANG_OPT_USE_JIT_INDEXER_METADATA=false
288336
export SGLANG_OPT_USE_TOPK_V2=false
289-
export SGLANG_OPT_USE_AITER_INDEXER=true
337+
export SGLANG_OPT_USE_AITER_INDEXER=${SGLANG_OPT_USE_AITER_INDEXER:-true}
290338
export SGLANG_OPT_USE_TILELANG_INDEXER=false
291339
export SGLANG_OPT_USE_TILELANG_MHC_PRE=false
292340
export SGLANG_OPT_USE_TILELANG_MHC_POST=false
293341
export SGLANG_FP8_PAGED_MQA_LOGITS_TORCH=1
342+
export SGLANG_OPT_USE_FUSED_COMPRESS_TRITON=true
294343
export SGLANG_OPT_USE_MULTI_STREAM_OVERLAP=false
295344
export SGLANG_ROCM_USE_MULTI_STREAM=false
296345
export AITER_BF16_FP8_MOE_BOUND=0
297346
export SGLANG_EAGER_INPUT_NO_COPY=true
347+
export SGLANG_SHARED_EXPERT_TP1=1
348+
export SGLANG_DP_SHARED_EXPERT_LOCAL=1
349+
export SGLANG_DP_USE_GATHERV=1
350+
export SGLANG_DP_USE_REDUCE_SCATTER=1
351+
export GPU_MAX_HW_QUEUES=5
298352
fi
299353

300-
# FIXME: WA for latest upstream 0305 image
301-
export PYTHONPATH=/sgl-workspace/aiter:${PYTHONPATH}
302-
303-
fi
354+
fi

0 commit comments

Comments
 (0)