b70-optimization-lab

Qwen3.6 27B FP8 on Intel Arc Pro B70 via vLLM/XPU

Date: 2026-05-04

Summary

The official Qwen/Qwen3.6-27B-FP8 model was downloaded and tested on 1/2/4 Intel Arc Pro B70 GPUs using vLLM/XPU. The model is Hugging Face Safetensors with 128x128 block-scaled FP8 weights, not GGUF.

Current vLLM/XPU does not provide a native XPU kernel for this block-FP8 quantization. A local patch adds two fallback paths:

Conclusion: this FP8 path is runnable but not performance-competitive yet. Continue Q4_0 GGUF/SYCL optimization as the primary quality-preserving speed track.

Environment

Commands

TP4 requant run that completed:

ONEAPI_DEVICE_SELECTOR=level_zero:0,1,2,3 \
VLLM_XPU_BLOCK_FP8_REQUANT=1 \
TP=4 INPUT_LEN=512 OUTPUT_LEN=32 BATCH_SIZE=1 MAX_MODEL_LEN=768 \
GPU_MEM_UTIL=0.95 NUM_ITERS=1 WARMUP_ITERS=0 \
EXTRA_ARGS='--kv-cache-memory-bytes 2G --max-num-seqs 1 --max-num-batched-tokens 768 --enforce-eager' \
/home/steve/bench-vllm-qwen36-fp8.sh

TP2 requant run that initialized but failed during generation:

ONEAPI_DEVICE_SELECTOR=level_zero:0,1 \
VLLM_XPU_BLOCK_FP8_REQUANT=1 \
TP=2 INPUT_LEN=512 OUTPUT_LEN=64 BATCH_SIZE=1 MAX_MODEL_LEN=768 \
GPU_MEM_UTIL=0.95 NUM_ITERS=1 WARMUP_ITERS=0 \
EXTRA_ARGS='--kv-cache-memory-bytes 2G --max-num-seqs 1 --max-num-batched-tokens 768 --enforce-eager' \
/home/steve/bench-vllm-qwen36-fp8.sh

Results

Mode Output Shape Outcome Latency Approx Output tok/s Including Prefill Notes
TP1 requant 512 prompt + 32 output completed 14.401 s 2.22 Model load used 27.64 GiB; only 0.54 GiB KV headroom.
TP2 requant fixed KV 512 prompt + 64 output failed n/a n/a Initialized, then OOMed in Intel Triton benchmark cache allocation during generation.
TP4 BF16 fallback 512 prompt + 32 output completed 9.870 s 3.24 Quality-preserving fallback but slow.
TP4 requant fixed KV 512 prompt + 32 output completed 9.733 s 3.29 Per-card model load 7.03 GiB; still much slower than Q4_0 llama.cpp.

Relevant local logs:

Interpretation

Next Work