This note summarizes pain points and requests found while deploying MiniMax M2.7 INT4 on 4x Intel Arc Pro B70 GPUs with Ubuntu 24.04, PyTorch XPU, vLLM, llm-scaler, and Level Zero.
The final setup worked and quality-gated successfully, but the path is still too fragile for ordinary users.
Hardware-scope caveat: all measurements here come from a community lab with
four Arc Pro B70 32 GB cards. That 128 GB aggregate footprint is enough for
MiniMax, Qwen, and Gemma work, but it leaves little room to test larger
frontier-adjacent open models while keeping a usable inference endpoint alive.
Additional high-VRAM Intel evaluation hardware would make the same
quality-gated workflow much more useful to vLLM/XPU, driver, compiler, and
business-unit teams looking for evidence on models beyond the current B70
capacity envelope.
xpu-smi, clinfo, PyTorch XPU, and vLLM.torch==2.11.0+xpu plus oneAPI compiler 2025.3 was stable enough to pass strict quality gates.0.0.0.0:8000.110.90 total tok/s for p512/n1536.Building vllm-xpu-kernels from source required one compiler process around 120+ GB RSS for paged_decode_xe2.cpp.
Impact:
Requests:
vllm-xpu-kernels wheels for the supported PyTorch XPU versions.The successful stack required:
2.11.0+xpuvllm-xpu-kernelsAn attempted newer PyTorch XPU nightly loaded the model but failed during vLLM torch.compile/AOT with a duplicate handler assertion.
Requests:
vllm-xpu-kernelsocloc/IGC internal compiler errors need better handlingDuring server startup, Triton/Inductor compilation emitted:
IGC: Internal Compiler Error: Floating point exception
Build failed with error code: -11
The process eventually continued and the server started, but this is scary and ambiguous.
Requests:
Using /opt/intel/oneapi/setvars.sh selected a newer compiler stack that caused build trouble. Directly sourcing /opt/intel/oneapi/compiler/2025.3/env/vars.sh worked.
Requests:
Patched/local vLLM paths used several VLLM_* flags, while vLLM’s generic environment scanner warned they were unknown.
Impact:
Requests:
Performance work on MoE, graph capture, custom allreduce, and logits paths can silently change output quality.
Requests:
The native vLLM CPU KV offload path rejected XPU before a local prototype was added:
CPU Offloading is currently only supported on CUDA-alike GPUs
A local XPU worker prototype showed that pinned host RAM, XPU streams/events,
and multi-GB KV movement can work on this stack. It moved CPU-to-GPU KV around
14-16 GB/s in session-cache tests. The remaining limitation is that XPU
FlashAttention still needs the active request’s working KV blocks resident in
live GPU KV memory.
Requests:
In c4 session-cache service testing, vLLM started with 34304 GPU KV tokens and
8.0 GiB CPU KV budget per tensor-parallel worker. A later operational smoke
hit a Level Zero device-lost error while copying vLLM block-table state back to
GPU:
RuntimeError: level_zero backend failed with error: 20 (UR_RESULT_ERROR_DEVICE_LOST)
The stack was:
gpu_model_runner.py:_prepare_inputs
block_table.py:commit_block_table
vllm/v1/utils.py:copy_to_gpu
Requests:
max_num_seqs, KV offload size, and batched-token
settings on B70.TurboQuant is promising for KV capacity, but the first B70/XPU run failed with a locked-workspace allocation error:
Workspace is locked but allocation from turboquant_attn.py:_decode_attention
requires 0.19 MB, current size is 0.00 MB.
A local fallback patch allowed forward progress by allocating temporary buffers
when the shared workspace was locked. After that, turboquant_k8v4 could start
at 32K and report about 80128 GPU KV tokens, but sustained decode was much
slower than the normal FP16-family KV lane.
Requests:
Small OpenAI-compatible logprob requests worked, but long-context logprob checks failed because NaN values escaped into JSON:
Out of range float values are not JSON compliant: nan
Requests:
An ideal user path would be:
sudo apt install intel-gpu-ai-runtime-b70-vllm
python -m venv .venv
. .venv/bin/activate
pip install torch-xpu-b70 vllm-xpu-b70 llm-scaler-minimax-kernels
intel-ai doctor --model minimax-m27-int4 --gpus 4
intel-ai serve-minimax --model /models/minimax --host 0.0.0.0 --port 8000
The intel-ai doctor command should verify:
It should also explain how much disk, RAM, and swap are needed.
2.13.0.dev20260520+xpu duplicate handler assertion during vLLM torch.compile/AOT:
AssertionError: Handler already registered for <function current_stream ...>vllm-xpu-kernels prebuilt wheel ABI mismatch against the active PyTorch stack:
Library::_def symbol.ocloc compile -spirv_input -device bmg.paged_decode_xe2.cpp.ocloc failures during server warmup.UR_RESULT_ERROR_DEVICE_LOST in
vLLM block-table copy_to_gpu.turboquant_attn.py.When reporting issues, capture:
xpu-smi discoveryclinfo -ldpkg-query -W 'intel-*' 'libze*' 'xpu-smi'python -c 'import torch; print(torch.__version__, torch.xpu.is_available(), torch.xpu.device_count())'vllm-xpu-kernels commitocloc command and SPIR-V file if available