FROM intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 AS vllm-base
FROM intel/deep-learning-essentials:2025.0.1-0-devel-ubuntu22.04 AS vllm-base
RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/intel-oneapi-archive-keyring.gpg > /dev/null && \
RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | tee /usr/share/keyrings/intel-oneapi-archive-keyring.gpg > /dev/null && \
echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main " | tee /etc/apt/sources.list.d/oneAPI.list && \
echo "deb [signed-by=/usr/share/keyrings/intel-oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main " | tee /etc/apt/sources.list.d/oneAPI.list && \
...
@@ -21,7 +21,8 @@ RUN apt-get update -y && \
...
@@ -21,7 +21,8 @@ RUN apt-get update -y && \
python3 \
python3 \
python3-dev \
python3-dev \
python3-pip \
python3-pip \
# vim \
libze-intel-gpu-dev \
libze-intel-gpu1 \
wget
wget
WORKDIR /workspace/vllm
WORKDIR /workspace/vllm
...
@@ -32,19 +33,10 @@ RUN --mount=type=cache,target=/root/.cache/pip \
...
@@ -32,19 +33,10 @@ RUN --mount=type=cache,target=/root/.cache/pip \
pip install --no-cache-dir \
pip install --no-cache-dir \
-r requirements/xpu.txt
-r requirements/xpu.txt
RUN git clone https://github.com/intel/pti-gpu && \
if [ "$GIT_REPO_CHECK" != 0 ]; then bash tools/check_repo.sh; fi
if [ "$GIT_REPO_CHECK" != 0 ]; then bash tools/check_repo.sh; fi
...
@@ -54,6 +46,12 @@ RUN --mount=type=cache,target=/root/.cache/pip \
...
@@ -54,6 +46,12 @@ RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,source=.git,target=.git \
--mount=type=bind,source=.git,target=.git \
python3 setup.py install
python3 setup.py install
# Please refer xpu doc, we need manually install intel-extension-for-pytorch 2.6.10+xpu due to there are some conflict dependencies with torch 2.6.0+xpu
# FIXME: This will be fix in ipex 2.7. just leave this here for awareness.
@@ -9,7 +9,7 @@ There are no pre-built wheels or images for this device, so you must build vLLM
...
@@ -9,7 +9,7 @@ There are no pre-built wheels or images for this device, so you must build vLLM
## Requirements
## Requirements
- Supported Hardware: Intel Data Center GPU, Intel ARC GPU
- Supported Hardware: Intel Data Center GPU, Intel ARC GPU
- OneAPI requirements: oneAPI 2024.2
- OneAPI requirements: oneAPI 2025.0
## Set up using Python
## Set up using Python
...
@@ -19,21 +19,27 @@ Currently, there are no pre-built XPU wheels.
...
@@ -19,21 +19,27 @@ Currently, there are no pre-built XPU wheels.
### Build wheel from source
### Build wheel from source
- First, install required driver and intel OneAPI 2024.2 or later.
- First, install required driver and Intel OneAPI 2025.0 or later.
- Second, install Python packages for vLLM XPU backend building:
- Second, install Python packages for vLLM XPU backend building:
```console
```console
source /opt/intel/oneapi/setvars.sh
pip install --upgrade pip
pip install --upgrade pip
pip install -v -r requirements/xpu.txt
pip install -v -r requirements/xpu.txt
```
```
-Finally, build and install vLLM XPU backend:
-Then, build and install vLLM XPU backend:
```console
```console
VLLM_TARGET_DEVICE=xpu python setup.py install
VLLM_TARGET_DEVICE=xpu python setup.py install
```
```
- Finally, due to a known issue of conflict dependency(oneapi related) in torch-xpu 2.6 and ipex-xpu 2.6, we install ipex here. This will be fixed in the ipex-xpu 2.7.
- FP16 is the default data type in the current XPU backend. The BF16 data
- FP16 is the default data type in the current XPU backend. The BF16 data
type is supported on Intel Data Center GPU, not supported on Intel Arc GPU yet.
type is supported on Intel Data Center GPU, not supported on Intel Arc GPU yet.
...
@@ -59,7 +65,7 @@ $ docker run -it \
...
@@ -59,7 +65,7 @@ $ docker run -it \
## Supported features
## Supported features
XPU platform supports tensor-parallel inference/serving and also supports pipeline parallel as a beta feature for online serving. We requires Ray as the distributed runtime backend. For example, a reference execution likes following:
XPU platform supports **tensorparallel** inference/serving and also supports **pipeline parallel** as a beta feature for online serving. We requires Ray as the distributed runtime backend. For example, a reference execution likes following:
By default, a ray instance will be launched automatically if no existing one is detected in system, with `num-gpus` equals to `parallel_config.world_size`. We recommend properly starting a ray cluster before execution, referring to the <gh-file:examples/online_serving/run_cluster.sh> helper script.
By default, a ray instance will be launched automatically if no existing one is detected in system, with `num-gpus` equals to `parallel_config.world_size`. We recommend properly starting a ray cluster before execution, referring to the <gh-file:examples/online_serving/run_cluster.sh> helper script.
There are some new features coming with ipex-xpu 2.6, eg: **chunked prefill**, **V1 engine support**, **lora**, **MoE**, etc.
# Please refer xpu doc, we need manually install intel-extension-for-pytorch 2.6.10+xpu due to there are some conflict dependencies with torch 2.6.0+xpu
# FIXME: This will be fix in ipex 2.7. just leave this here for awareness.