@@ -109,7 +109,7 @@ variants:
109109 gpu_arch : Blackwell
110110 vram_min_mib : 40960
111111 unified_memory : true
112- engine : vllm
112+ engine : vllm-mtp-blackwell
113113 format : safetensors
114114 default_config :
115115 gpu_memory_utilization : 0.92
@@ -125,9 +125,9 @@ variants:
125125 mm_encoder_attn_backend : TORCH_SDPA
126126 skip_mm_profiling : true
127127 max_num_batched_tokens : 8192
128- speculative_config :
129- method : mtp
130- num_speculative_tokens : 1
128+ # speculative_config must be a JSON string, not a YAML map —
129+ # configToFlags() uses fmt.Sprintf("%v") which renders maps as map[k:v], not JSON.
130+ speculative_config : ' {"method":"mtp"," num_speculative_tokens":1} '
131131 expected_performance :
132132 startup_time_s : 190
133133 cold_start_time_s : 300
@@ -172,11 +172,11 @@ variants:
172172 skip_mm_profiling : true
173173 max_num_batched_tokens : 8192
174174 max_num_seqs : 1
175- async_scheduling : false
176- speculative_config :
177- method : dflash
178- model : /models/Qwen3.6-35B-A3B-DFlash
179- num_speculative_tokens : 10
175+ no_async_scheduling : true
176+ # speculative_config must be a JSON string (see MTP variant comment).
177+ # async_scheduling: false does NOT work — configToFlags omits false bools.
178+ # Use no_async_scheduling: true instead.
179+ speculative_config : ' {"method":"dflash","model":"/models/Qwen3.6-35B-A3B-DFlash"," num_speculative_tokens":10} '
180180 expected_performance :
181181 startup_time_s : 376
182182 cold_start_time_s : 420
@@ -321,3 +321,44 @@ variants:
321321 58277 : [13.749, 26.2, 4239]
322322 116532 : [35.169, 19.9, 3313]
323323 233039 : [109.196, 13.5, 2134]
324+
325+ # --- GB10 MTP + VLM: multimodal (text + image input) with MTP speculative decoding ---
326+ # Requires vllm-mtp-blackwell engine with flash_attn layers patch (see engine YAML comments).
327+ # Key differences from text-only MTP variant:
328+ # - No language_model_only (enables vision encoder cross-attention)
329+ # - attention_backend: TRITON_ATTN (FA2 _vllm_fa2_C broken in MTP image)
330+ # - mm_encoder_attn_backend: TORCH_SDPA (VLM non-causal attention fallback)
331+ # - skip_mm_profiling: true (avoid VLM encoder memory profiling crash)
332+ # - extra_volumes patch required for vllm_flash_attn/layers/ (rotary embedding)
333+ # DFlash + VLM is NOT viable on GB10 SM121: FA2 non-causal kernels lack SM121 PTX,
334+ # and TRITON_ATTN does not support non-causal attention required by DFlash spec decoding.
335+ - name : qwen3.6-35b-a3b-blackwell-vllm-mtp-vlm
336+ hardware :
337+ gpu_arch : Blackwell
338+ vram_min_mib : 40960
339+ unified_memory : true
340+ engine : vllm-mtp-blackwell
341+ format : safetensors
342+ default_config :
343+ gpu_memory_utilization : 0.80
344+ max_model_len : 131072
345+ dtype : bfloat16
346+ enforce_eager : true
347+ trust_remote_code : true
348+ reasoning_parser : qwen3
349+ enable_auto_tool_choice : true
350+ tool_call_parser : qwen3_xml
351+ attention_backend : TRITON_ATTN
352+ mm_encoder_attn_backend : TORCH_SDPA
353+ skip_mm_profiling : true
354+ max_num_batched_tokens : 8192
355+ max_num_seqs : 4
356+ no_async_scheduling : true
357+ speculative_config : ' {"method":"mtp","num_speculative_tokens":1}'
358+ expected_performance :
359+ startup_time_s : 212
360+ cold_start_time_s : 300
361+ tokens_per_second : [27, 41]
362+ tpot_ms : [24, 37]
363+ vram_mib : 68710
364+ notes : " Validated 2026-05-13 on gb10-4t. Text decode ~40 tok/s, VLM (image+text) ~37 tok/s. First request has ~10s JIT Triton warmup. Requires flash_attn layers patch volume mount (see engine YAML). Model loads 67.1 GiB, total boot ~212s (main model 174s + MTP drafter 16s + KV cache). MTP acceptance gives ~80% speedup over baseline 22 tok/s. DFlash+VLM failed on SM121 due to FA2 non-causal PTX incompatibility."
0 commit comments