Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
# Smoke-only colocated variant of the archived MiniMax-M3 recipe.
# Preserve the original TP4/TP4 serving and benchmark settings. srt-slurm
# owns allocation, native vLLM Router discovery, health, logs, and teardown.
schema: 2
name: mi355x-vllm-minimaxm3-colocated-tp4-smoke

model:
# Same provisioned checkpoint selected by the retired AMD launcher.
path: /it-share/data/MiniMax-M3-MXFP4
container: vllm/vllm-openai-rocm:v0.28.0
precision: fp4

identity:
model:
repo: amd/MiniMax-M3-MXFP4
container:
image: vllm/vllm-openai-rocm:v0.28.0
frameworks:
vllm-router: 5d3c3af9a41dec2d5ecff412024b7a743763472d

slurm:
time_limit: "08:00:00"

resources:
gpu_type: mi355x
gpus_per_node: 8
frontend:
type: vllm-router
container_image: vllm/vllm-router:nightly-20260922-5d3c3af
enable_multiple_frontends: false
args:
policy: consistent_hash
prefill-policy: consistent_hash
decode-policy: consistent_hash
log-level: info

environment: &runtime_environment
HF_HOME: /hf_hub_cache
HF_HUB_CACHE: /hf_hub_cache
HUGGINGFACE_HUB_CACHE: /hf_hub_cache
PYTHONDONTWRITEBYTECODE: "1"
PYTHONUNBUFFERED: "1"
GLOO_SOCKET_IFNAME: eno0
NCCL_SOCKET_IFNAME: eno0
NCCL_IB_HCA: rdma0,rdma1,rdma2,rdma3,rdma4,rdma5,rdma6,rdma7
MORI_RDMA_TC: "104"
MORI_IO_SQ_BACKOFF_TIMEOUT_US: "50000"
MORI_IO_QP_MAX_SEND_WR: "16384"
MORI_IO_QP_MAX_CQE: "32768"
MORI_IO_QP_MAX_SGE: "2"
MORI_IO_TC_DISABLE: "0"
VLLM_USE_V1: "1"
VLLM_SERVER_DEV_MODE: "0"
VLLM_DISABLE_REQUEST_ID_RANDOMIZATION: "1"
VLLM_ROCM_USE_AITER: "1"
VLLM_ROCM_USE_AITER_MOE: "1"
VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS: "1"
VLLM_USE_BREAKABLE_CUDAGRAPH: "0"
VLLM_ENGINE_READY_TIMEOUT_S: "3600"

engine:
type: vllm
connector: moriio
roles:
prefill:
nodes: 1
workers: 1
gpus: 4
env:
VLLM_ROCM_QUICK_REDUCE_QUANTIZATION: INT4
VLLM_ROCM_QUICK_REDUCE_MAX_SIZE_BYTES_MB: "2048"
args: &server_options
tensor-parallel-size: 4
served-model-name: MiniMax-M3-MXFP4
max-num-batched-tokens: 32768
max-num-seqs: 512
block-size: 128
language-model-only: true
attention-backend: TRITON_ATTN
moe-backend: aiter
no-enable-prefix-caching: true
gpu-memory-utilization: 0.90
tool-call-parser: minimax_m3
reasoning-parser: minimax_m3
enable-auto-tool-choice: true
trust-remote-code: true
decode:
nodes: colocate
workers: 1
gpus: 4

args: *server_options

# Reserve the whole node; each TP4 role owns a disjoint four-GPU subset.
sbatch_directives:
cpus-per-task: "128"
mem: "0"
exclusive: ""

srun_options:
container-writable: ""
container-remap-root: ""
mem: "0"

health_check:
max_attempts: 720
interval_seconds: 5

benchmark:
type: custom
command: |
set -eo pipefail
source /infmax-workspace/benchmarks/benchmark_lib.sh --validation-only
check_env_vars SLURM_JOB_ID SRT_FRONTEND_HOST SRT_FRONTEND_PORT CONC_LIST RANDOM_RANGE_RATIO
result_root="/results/${SLURM_JOB_ID}"
mkdir -p "${result_root}/fixed-seq"
archive_runtime_logs() {
tar -C /logs -czf "${result_root}/runtime-logs.tar.gz" . 2>/dev/null || true
}
trap archive_runtime_logs EXIT
for concurrency in ${CONC_LIST}; do
num_prompts=$((concurrency * 10))
if (( num_prompts < 16 )); then num_prompts=16; fi
python3 /infmax-workspace/utils/bench_serving/benchmark_serving.py \
--backend openai \
--base-url "http://${SRT_FRONTEND_HOST}:${SRT_FRONTEND_PORT}" \
--endpoint /v1/completions \
--model MiniMax-M3-MXFP4 \
--tokenizer /model \
--dataset-name random \
--random-input-len 8192 \
--random-output-len 1024 \
--random-range-ratio "${RANDOM_RANGE_RATIO}" \
--num-warmups "$((concurrency * 2))" \
--num-prompts "${num_prompts}" \
--max-concurrency "${concurrency}" \
--request-rate inf \
--ignore-eos \
--trust-remote-code \
--percentile-metrics ttft,tpot,itl,e2el \
--save-result \
--result-dir "${result_root}/fixed-seq" \
--result-filename "minimaxm3-vllm-mi355x-disagg-1p1d-tp4-isl8192-osl1024-c${concurrency}.json"
# The original vLLM benchmark allowed the idle KV reaper ten seconds.
sleep 10
done
env:
<<: *runtime_environment
MODEL_NAME: MiniMax-M3-MXFP4
TRANSFORMERS_VERBOSITY: error
TOKENIZERS_PARALLELISM: "false"
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# Compatibility validation of the archived MI355X MiniMax-M3 FP4 recipe.
# Preserve the original TP4/TP4 serving and benchmark settings. srt-slurm
# owns allocation, native vLLM Router discovery, health, logs, and teardown.
schema: 2
name: mi355x-vllm-minimaxm3-disagg-1p1d-tp4-8k1k

model:
# Same provisioned checkpoint selected by the retired AMD launcher.
path: /it-share/data/MiniMax-M3-MXFP4
container: vllm/vllm-openai-rocm:v0.28.0
precision: fp4

identity:
model:
repo: amd/MiniMax-M3-MXFP4
container:
image: vllm/vllm-openai-rocm:v0.28.0
frameworks:
vllm-router: 5d3c3af9a41dec2d5ecff412024b7a743763472d

slurm:
time_limit: "08:00:00"

resources:
gpu_type: mi355x
gpus_per_node: 8
frontend:
type: vllm-router
container_image: vllm/vllm-router:nightly-20260922-5d3c3af
enable_multiple_frontends: false
args:
policy: consistent_hash
prefill-policy: consistent_hash
decode-policy: consistent_hash
log-level: info

environment: &runtime_environment
HF_HOME: /hf_hub_cache
HF_HUB_CACHE: /hf_hub_cache
HUGGINGFACE_HUB_CACHE: /hf_hub_cache
PYTHONDONTWRITEBYTECODE: "1"
PYTHONUNBUFFERED: "1"
GLOO_SOCKET_IFNAME: eno0
NCCL_SOCKET_IFNAME: eno0
NCCL_IB_HCA: rdma0,rdma1,rdma2,rdma3,rdma4,rdma5,rdma6,rdma7
MORI_RDMA_TC: "104"
MORI_IO_SQ_BACKOFF_TIMEOUT_US: "50000"
MORI_IO_QP_MAX_SEND_WR: "16384"
MORI_IO_QP_MAX_CQE: "32768"
MORI_IO_QP_MAX_SGE: "2"
MORI_IO_TC_DISABLE: "0"
VLLM_USE_V1: "1"
VLLM_SERVER_DEV_MODE: "0"
VLLM_DISABLE_REQUEST_ID_RANDOMIZATION: "1"
VLLM_ROCM_USE_AITER: "1"
VLLM_ROCM_USE_AITER_MOE: "1"
VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS: "1"
VLLM_USE_BREAKABLE_CUDAGRAPH: "0"
VLLM_ENGINE_READY_TIMEOUT_S: "3600"

engine:
type: vllm
connector: moriio
roles:
prefill:
nodes: 1
workers: 1
gpus: 4
env:
VLLM_ROCM_QUICK_REDUCE_QUANTIZATION: INT4
VLLM_ROCM_QUICK_REDUCE_MAX_SIZE_BYTES_MB: "2048"
args: &server_options
tensor-parallel-size: 4
served-model-name: MiniMax-M3-MXFP4
max-num-batched-tokens: 32768
max-num-seqs: 512
block-size: 128
language-model-only: true
attention-backend: TRITON_ATTN
moe-backend: aiter
no-enable-prefix-caching: true
gpu-memory-utilization: 0.90
tool-call-parser: minimax_m3
reasoning-parser: minimax_m3
enable-auto-tool-choice: true
trust-remote-code: true
decode:
nodes: 1
workers: 1
gpus: 4

args: *server_options

# Preserve the original exclusive two-node allocation, although each worker
# uses only four GPUs. Do not pack the roles onto one node.
sbatch_directives:
cpus-per-task: "128"
mem: "0"
exclusive: ""

srun_options:
container-writable: ""
container-remap-root: ""
mem: "0"

health_check:
max_attempts: 720
interval_seconds: 5

benchmark:
type: custom
command: |
set -eo pipefail
source /infmax-workspace/benchmarks/benchmark_lib.sh --validation-only
check_env_vars SLURM_JOB_ID SRT_FRONTEND_HOST SRT_FRONTEND_PORT CONC_LIST RANDOM_RANGE_RATIO
result_root="/results/${SLURM_JOB_ID}"
mkdir -p "${result_root}/fixed-seq"
archive_runtime_logs() {
tar -C /logs -czf "${result_root}/runtime-logs.tar.gz" . 2>/dev/null || true
}
trap archive_runtime_logs EXIT
for concurrency in ${CONC_LIST}; do
num_prompts=$((concurrency * 10))
if (( num_prompts < 16 )); then num_prompts=16; fi
python3 /infmax-workspace/utils/bench_serving/benchmark_serving.py \
--backend openai \
--base-url "http://${SRT_FRONTEND_HOST}:${SRT_FRONTEND_PORT}" \
--endpoint /v1/completions \
--model MiniMax-M3-MXFP4 \
--tokenizer /model \
--dataset-name random \
--random-input-len 8192 \
--random-output-len 1024 \
--random-range-ratio "${RANDOM_RANGE_RATIO}" \
--num-warmups "$((concurrency * 2))" \
--num-prompts "${num_prompts}" \
--max-concurrency "${concurrency}" \
--request-rate inf \
--ignore-eos \
--trust-remote-code \
--percentile-metrics ttft,tpot,itl,e2el \
--save-result \
--result-dir "${result_root}/fixed-seq" \
--result-filename "minimaxm3-vllm-mi355x-disagg-1p1d-tp4-isl8192-osl1024-c${concurrency}.json"
# The original vLLM benchmark allowed the idle KV reaper ten seconds.
sleep 10
done
env:
<<: *runtime_environment
MODEL_NAME: MiniMax-M3-MXFP4
TRANSFORMERS_VERBOSITY: error
TOKENIZERS_PARALLELISM: "false"
33 changes: 33 additions & 0 deletions configs/deprecated/amd-master.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,39 @@ dsr1-fp4-mi355x-sglang-mtp:
search-space:
- { tp: 8, ep: 1, conc-start: 4, conc-end: 64, spec-decoding: mtp }

minimaxm3-fp4-mi355x-vllm-disagg:
image: vllm/vllm-openai-rocm:v0.28.0
model: amd/MiniMax-M3-MXFP4
model-prefix: minimaxm3
runner: cluster:mi355x-amds
precision: fp4
framework: vllm-disagg
router: { name: vllm-router, version: "5d3c3af9a41dec2d5ecff412024b7a743763472d" }
kv-p2p-transfer: moriio
multinode: true
disagg: true
scenarios:
fixed-seq-len:
- isl: 8192
osl: 1024
search-space:
- spec-decoding: "none"
conc-list: [1, 2, 4, 8, 16, 32, 64, 128, 256]
prefill:
num-worker: 1
tp: 4
ep: 1
dp-attn: false
additional-settings:
- "CONFIG_FILE=recipes/vllm/minimax-m3/mi355x-fp4/8k1k/disagg-1p1d-tp4.yaml"
decode:
num-worker: 1
tp: 4
ep: 1
dp-attn: false
additional-settings:
- "CONFIG_FILE=recipes/vllm/minimax-m3/mi355x-fp4/8k1k/disagg-1p1d-tp4.yaml"

dsr1-fp4-mi355x-atom:
image: rocm/atom:rocm7.2.3_ubuntu24.04_py3.12_pytorch_release_2.10.0_atom20260511
model: amd/DeepSeek-R1-0528-MXFP4-Preview
Expand Down
36 changes: 36 additions & 0 deletions configs/smoke/amd-srt-colocated.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Smoke-only colocated layout; the archived two-node recipe remains unchanged.
minimaxm3-fp4-mi355x-vllm-colocated-smoke:
image: vllm/vllm-openai-rocm:v0.28.0
model: amd/MiniMax-M3-MXFP4
model-prefix: minimaxm3
runner: cluster:mi355x-amds
precision: fp4
framework: vllm-disagg
router:
name: vllm-router
version: 5d3c3af9a41dec2d5ecff412024b7a743763472d
kv-p2p-transfer: moriio
multinode: true
disagg: true
scenarios:
fixed-seq-len:
- isl: 8192
osl: 1024
search-space:
- spec-decoding: none
conc-list:
- 4
prefill:
num-worker: 1
tp: 4
ep: 1
dp-attn: false
additional-settings:
- CONFIG_FILE=recipes/vllm/minimax-m3/mi355x-fp4/8k1k/colocated-tp4-smoke.yaml
decode:
num-worker: 1
tp: 4
ep: 1
dp-attn: false
additional-settings:
- CONFIG_FILE=recipes/vllm/minimax-m3/mi355x-fp4/8k1k/colocated-tp4-smoke.yaml
Loading