using --enfore-eager only loaded the model, but the requests made to the api would timeout with the same shm_broadcast.py logs message.
WARNING 04-05 03:14:16 [argparse_utils.py:191] With `vllm serve`, you should provide the model as a positional argument or in a config file instead of via the `--model` option. The `--model` option will be removed in v0.13.
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299]
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299] █ █ █▄ ▄█
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299] ▄▄ ▄█ █ █ █ ▀▄▀ █ version 0.19.0
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299] █▄█▀ █ █ █ █ model mistralai/Devstral-Small-2-24B-Instruct-2512
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299] ▀▀ ▀▀▀▀▀ ▀▀▀▀▀ ▀ ▀
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:299]
(APIServer pid=1) INFO 04-05 03:14:16 [utils.py:233] non-default args: {'model_tag': 'mistralai/Devstral-Small-2-24B-Instruct-2512', 'enable_auto_tool_choice': True, 'tool_call_parser': 'mistral', 'model': 'mistralai/Devstral-Small-2-24B-Instruct-2512', 'max_model_len': 128000, 'quantization': 'fp8', 'tensor_parallel_size': 2, 'kv_cache_dtype': 'fp8_e4m3', 'enable_prefix_caching': True}
Parse safetensors files: 100%|██████████| 2/2 [00:00<00:00, 5.09it/s]
(APIServer pid=1) INFO 04-05 03:14:18 [config.py:288] Inferred from consolidated*.safetensors files torch.bfloat16 dtype.
(APIServer pid=1) INFO 04-05 03:14:23 [model.py:549] Resolved architecture: PixtralForConditionalGeneration
(APIServer pid=1) INFO 04-05 03:14:23 [model.py:1678] Using max model len 128000
(APIServer pid=1) [aiter] import [module_aiter_enum] under /usr/local/lib/python3.12/dist-packages/aiter/jit/module_aiter_enum.so
(APIServer pid=1) INFO 04-05 03:14:24 [cache.py:227] Using fp8 data type to store kv cache. It reduces the GPU memory footprint and boosts the performance. Meanwhile, it may cause accuracy drop without a proper scaling factor.
(APIServer pid=1) INFO 04-05 03:14:24 [vllm.py:790] Asynchronous scheduling is enabled.
(EngineCore pid=104) INFO 04-05 03:14:29 [core.py:105] Initializing a V1 LLM engine (v0.19.0) with config: model='mistralai/Devstral-Small-2-24B-Instruct-2512', speculative_config=None, tokenizer='mistralai/Devstral-Small-2-24B-Instruct-2512', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=128000, download_dir=None, load_format=auto, tensor_parallel_size=2, pipeline_parallel_size=1, data_parallel_size=1, decode_context_parallel_size=1, dcp_comm_backend=ag_rs, disable_custom_all_reduce=True, quantization=fp8, enforce_eager=False, enable_return_routed_experts=False, kv_cache_dtype=fp8_e4m3, device_config=cuda, structured_outputs_config=StructuredOutputsConfig(backend='auto', disable_any_whitespace=False, disable_additional_properties=False, reasoning_parser='', reasoning_parser_plugin='', enable_in_reasoning=False), observability_config=ObservabilityConfig(show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, kv_cache_metrics=False, kv_cache_metrics_sample=0.01, cudagraph_metrics=False, enable_layerwise_nvtx_tracing=False, enable_mfu_metrics=False, enable_mm_processor_stats=False, enable_logging_iteration_details=False), seed=0, served_model_name=mistralai/Devstral-Small-2-24B-Instruct-2512, enable_prefix_caching=True, enable_chunked_prefill=True, pooler_config=None, compilation_config={'mode': <CompilationMode.VLLM_COMPILE: 3>, 'debug_dump_path': None, 'cache_dir': '', 'compile_cache_save_format': 'binary', 'backend': 'inductor', 'custom_ops': ['+sparse_attn_indexer', 'none'], 'splitting_ops': ['vllm::unified_attention', 'vllm::unified_attention_with_output', 'vllm::unified_mla_attention', 'vllm::unified_mla_attention_with_output', 'vllm::mamba_mixer2', 'vllm::mamba_mixer', 'vllm::short_conv', 'vllm::linear_attention', 'vllm::plamo2_mamba_mixer', 'vllm::gdn_attention_core', 'vllm::olmo_hybrid_gdn_full_forward', 'vllm::kda_attention', 'vllm::sparse_attn_indexer', 'vllm::rocm_aiter_sparse_attn_indexer', 'vllm::unified_kv_cache_update', 'vllm::unified_mla_kv_cache_update'], 'compile_mm_encoder': False, 'cudagraph_mm_encoder': False, 'encoder_cudagraph_token_budgets': [], 'encoder_cudagraph_max_images_per_batch': 0, 'compile_sizes': [], 'compile_ranges_endpoints': [2048], 'inductor_compile_config': {'enable_auto_functionalized_v2': False, 'size_asserts': False, 'alignment_asserts': False, 'scalar_asserts': False, 'combo_kernels': True, 'benchmark_combo_kernel': True}, 'inductor_passes': {}, 'cudagraph_mode': <CUDAGraphMode.FULL_AND_PIECEWISE: (2, 1)>, 'cudagraph_num_of_warmups': 1, 'cudagraph_capture_sizes': [1, 2, 4, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464, 480, 496, 512], 'cudagraph_copy_inputs': False, 'cudagraph_specialize_lora': True, 'use_inductor_graph_partition': False, 'pass_config': {'fuse_norm_quant': False, 'fuse_act_quant': False, 'fuse_attn_quant': False, 'enable_sp': False, 'fuse_gemm_comms': False, 'fuse_allreduce_rms': False}, 'max_cudagraph_capture_size': 512, 'dynamic_shapes_config': {'type': <DynamicShapesType.BACKED: 'backed'>, 'evaluate_guards': False, 'assume_32_bit_indexing': False}, 'local_cache_dir': None, 'fast_moe_cold_start': True, 'static_all_moe_layers': []}
(EngineCore pid=104) INFO 04-05 03:14:29 [multiproc_executor.py:134] DP group leader: node_rank=0, node_rank_within_dp=0, master_addr=127.0.0.1, mq_connect_ip=172.17.0.2 (local), world_size=2, local_world_size=2
(Worker pid=136) INFO 04-05 03:14:34 [parallel_state.py:1400] world_size=2 rank=0 local_rank=0 distributed_init_method=tcp://127.0.0.1:52449 backend=nccl
(Worker pid=137) INFO 04-05 03:14:34 [parallel_state.py:1400] world_size=2 rank=1 local_rank=1 distributed_init_method=tcp://127.0.0.1:52449 backend=nccl
(Worker pid=136) INFO 04-05 03:14:34 [pynccl.py:111] vLLM is using nccl==2.27.7
(Worker pid=136) INFO 04-05 03:14:39 [parallel_state.py:1716] rank 0 in world size 2 is assigned as DP rank 0, PP rank 0, PCP rank 0, TP rank 0, EP rank N/A, EPLB rank N/A
(Worker_TP0 pid=136) INFO 04-05 03:14:39 [gpu_model_runner.py:4735] Starting to load model mistralai/Devstral-Small-2-24B-Instruct-2512...
(Worker_TP0 pid=136) INFO 04-05 03:14:40 [vllm.py:790] Asynchronous scheduling is enabled.
(Worker_TP0 pid=136) INFO 04-05 03:14:40 [__init__.py:261] Selected PerTensorTorchFP8ScaledMMLinearKernel for Fp8LinearMethod
(Worker_TP0 pid=136) INFO 04-05 03:14:40 [rocm.py:496] Using ROCM_ATTN backend out of potential backends: ['ROCM_ATTN', 'TRITON_ATTN'].
(Worker_TP0 pid=136) WARNING 04-05 03:14:40 [compilation.py:1220] Op 'sparse_attn_indexer' not present in model, enabling with '+sparse_attn_indexer' has no effect
Loading safetensors checkpoint shards: 0% Completed | 0/2 [00:00<?, ?it/s]
Loading safetensors checkpoint shards: 50% Completed | 1/2 [00:01<00:01, 1.81s/it]
Loading safetensors checkpoint shards: 100% Completed | 2/2 [00:02<00:00, 1.25s/it]
Loading safetensors checkpoint shards: 100% Completed | 2/2 [00:02<00:00, 1.34s/it]
(Worker_TP0 pid=136)
(Worker_TP0 pid=136) INFO 04-05 03:14:44 [default_loader.py:384] Loading weights took 2.75 seconds
(Worker_TP0 pid=136) WARNING 04-05 03:14:44 [kv_cache.py:94] Checkpoint does not provide a q scaling factor. Setting it to k_scale. This only matters for FP8 Attention backends (flash-attn or flashinfer).
(Worker_TP0 pid=136) WARNING 04-05 03:14:44 [kv_cache.py:108] Using KV cache scaling factor 1.0 for fp8_e4m3. If this is unintended, verify that k/v_scale scaling factors are properly set in the checkpoint.
(Worker_TP0 pid=136) INFO 04-05 03:14:45 [gpu_model_runner.py:4820] Model loading took 15.6 GiB memory and 4.872822 seconds
(Worker_TP0 pid=136) INFO 04-05 03:14:46 [gpu_model_runner.py:5753] Encoder cache will be initialized with a budget of 3025 tokens, and profiled with 1 image items of the maximum feature size.
(Worker_TP0 pid=136) INFO 04-05 03:14:51 [backends.py:1051] Using cache directory: /root/.cache/vllm/torch_compile_cache/bfe186540c/rank_0_0/backbone for vLLM's torch.compile
(Worker_TP0 pid=136) INFO 04-05 03:14:51 [backends.py:1111] Dynamo bytecode transform time: 4.81 s
(Worker_TP0 pid=136) INFO 04-05 03:14:57 [backends.py:372] Cache the graph of compile range (1, 2048) for later use
(Worker_TP0 pid=136) INFO 04-05 03:15:02 [backends.py:390] Compiling a graph for compile range (1, 2048) takes 10.74 s
(Worker_TP0 pid=136) INFO 04-05 03:15:04 [decorators.py:640] saved AOT compiled function to /root/.cache/vllm/torch_compile_cache/torch_aot_compile/4c2881b4ad445e3cc0159e01cf6e6ac0f7b584db6faa9f898ccdf234cde36d53/rank_0_0/model
(Worker_TP0 pid=136) INFO 04-05 03:15:04 [monitor.py:48] torch.compile took 17.40 s in total
(Worker_TP0 pid=136) INFO 04-05 03:15:05 [monitor.py:76] Initial profiling/warmup run took 0.93 s
(Worker_TP0 pid=136) INFO 04-05 03:15:08 [gpu_worker.py:436] Available KV cache memory: 11.87 GiB
(EngineCore pid=104) INFO 04-05 03:15:08 [kv_cache_utils.py:1319] GPU KV cache size: 311,264 tokens
(EngineCore pid=104) INFO 04-05 03:15:08 [kv_cache_utils.py:1324] Maximum concurrency for 128,000 tokens per request: 2.43x
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE): 71%|███████ | 36/51 [00:22<00:01, 11.70it/s](EngineCore pid=104) INFO 04-05 03:16:09 [shm_broadcast.py:681] No available shared memory broadcast block found in 60 seconds. This typically happens when some processes are hanging or doing some time-consuming work (e.g. compilation, weight/kv cache quantization).
(EngineCore pid=104) INFO 04-05 03:17:09 [shm_broadcast.py:681] No available shared memory broadcast block found in 60 seconds. This typically happens when some processes are hanging or doing some time-consuming work (e.g. compilation, weight/kv cache quantization).
Your current environment
The output of
python collect_env.py🐛 Describe the bug
Attempting to serve any model (tested with devstral small 2) fails and stops at
Capturing CUDA graphs (mixed prefill-decode, PIECEWISE): 71%|███████ | 36/51 [00:22<00:01, 11.70it/s]
After this message there is a continuous shm_broadcast message but the load never proceeds.
[shm_broadcast.py:681] No available shared memory broadcast block found in 60 seconds. This typically happens when some processes are hanging or doing some time-consuming work (e.g. compilation, weight/kv cache quantization).
I am using the latest (v0.19.0) docker image and the command used was
using --enfore-eager only loaded the model, but the requests made to the api would timeout with the same shm_broadcast.py logs message.
The full logs are
Before submitting a new issue...