vllm-xpu-kernels
A vLLM component that provides optimized custom kernels for Intel GPUs (XPU) to accelerate LLM inference.
Table of Contents
About
vLLM defines and implements many custom Torch ops and kernels. This repository provides custom implementations for the Intel XPU (GPU) backend, enabling high-throughput LLM inference on Intel hardware.
Kernels are written in SYCL/DPC++ and leverage oneDNN for deep learning primitives. The library follows the PyTorch custom op registration and dispatch pattern — importing it at startup registers all ops for seamless use within vLLM.
Supported Kernels
| Category | Operations |
|---|---|
| Normalization | RMS norm, fused add-RMS norm, layer norm |
| Activation | SiLU-and-mul, mul-and-SiLU, GeLU (fast/new/quick/tanh), SwigluOAI |
| Attention | Flash attention (variable-length), GDN attention, XE2 attention variants |
| Positional Encoding | Rotary embedding (NeoX and GPT-J styles), DeepSeek scaling RoPE |
| Mixture of Experts | TopK scoring (softmax/sigmoid), grouped TopK, fused grouped TopK; MoE align sum, MoE gather, expert remapping |
| LoRA | LoRA operator support |
| Quantization | FP8, MxFP4 quantization and GEMM |
| GEMM | Grouped GEMM |
| Misc | TopK per row, memory utilities |
Requirements
- Python: 3.9 – 3.12
- PyTorch: 2.13.0+xpu
- oneAPI: 2026.0 (Base Toolkit download)
- CMake: ≥ 3.26
- Ninja build system
Getting Started
How It Works
vLLM calls import vllm_xpu_kernels._C at startup, which registers all custom ops into the PyTorch dispatcher. From that point on, XPU ops are dispatched automatically whenever vLLM runs on Intel GPU hardware — no additional code changes are required in vLLM itself.
Installation
1. Install oneAPI 2026.0
Download and install the Intel oneAPI Base Toolkit, then source the environment:
source /opt/intel/oneapi/setvars.sh
2. Create a virtual environment and install dependencies
python -m venv .venv
source .venv/bin/activate
git clone https://github.com/vllm-project/vllm-xpu-kernels
cd vllm-xpu-kernels
pip install -r requirements.txt
Build Options
Development install (editable, source in current directory):
pip install --extra-index-url=https://download.pytorch.org/whl/xpu -e . -v
# Faster: skip build isolation if dependencies are already present
pip install --no-build-isolation -e . -v
Standard install (to site-packages):
pip install --extra-index-url=https://download.pytorch.org/whl/xpu .
# or
pip install --no-build-isolation .
Build a wheel (output goes to dist/):
pip wheel --extra-index-url=https://download.pytorch.org/whl/xpu .
# or
pip wheel --no-build-isolation .
Incremental rebuild (fastest for iterative development):
python -m build --wheel --no-isolation
Using with vLLM
After vLLM RFC#33214 was completed, vLLM-XPU migrated to a vllm-xpu-kernels-based implementation. Installing the latest vLLM for XPU will pull in vllm-xpu-kernels automatically as a wheel dependency — no manual integration is required.
Kernel Configuration
By default, vLLM-XPU compiles kernels for common models (Llama, Qwen, DeepSeek). For customization:
VLLM_CHUNK_PREFILL_CONFIG=chunk_prefill_full.conf VLLM_PAGED_DECODE_CONFIG=paged_decode_full.conf pip install .
See KERNEL_CONFIGURATION.md for detailed guidance on kernel configuration, presets, and troubleshooting missing kernels.
Testing
Run the full test suite with pytest:
pytest tests/
Individual test modules cover activations, cache operations, attention, MoE, LoRA, quantization, and memory utilities. See the tests/ directory for the complete list.
Benchmarks
Benchmark scripts for individual kernels are in the benchmark/ directory:
python benchmark/benchmark_layernorm.py
python benchmark/benchmark_lora.py
python benchmark/benchmark_grouped_topk.py
# etc.
License
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vllm_xpu_kernels-0.1.12.3-cp38-abi3-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: vllm_xpu_kernels-0.1.12.3-cp38-abi3-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 73.5 MB
- Tags: CPython 3.8+, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a231e614efe99cd320529452150a52bf789058d5344ae7a046de9acbc91d45e2
|
|
| MD5 |
24e6b1c17b127a370801e0b94fb75d1d
|
|
| BLAKE2b-256 |
502965cba041adb017f8b76e90abfe6400b1609a17c2d542c16b6a0e35fe7132
|