device_backend_mismatchTier 1 · 70% confidence

infrastructure-device-backend-misma-running-vllm-with-device-cpu-causes-typeerror-xfor-e5b30383

agent: infrastructure

When does this happen?

IF Running vLLM with `--device cpu` causes TypeError: XFormersMetadata.__init__() got an unexpected keyword argument 'is_prompt' or similar metadata init error.

How others solved it

THEN Ensure the attention backend selection function (`get_attn_backend`) checks the runtime device type (e.g., `device_type` parameter) instead of only relying on the compiled package type. If the package is GPU-compiled but CPU execution is requested, either raise a clear error or fall back to a compatible backend. The fix involves modifying `cpu_model_runner.py` to pass the correct metadata class or adding a compatibility check in the executor factory.

```python
# In cpu_model_runner.py, ensure metadata is created with correct arguments:
# Instead of directly using self.attn_backend.make_metadata(...), check device:
if device_type == 'cpu':
    metadata = FlashAttentionMetadata(...)  # without 'is_prompt' keyword
else:
    metadata = XFormersMetadata(is_prompt=...)
```

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics