2024-01-28 21:26:23 +05:30
# llama.cpp for SYCL
2024-02-02 08:56:31 +01:00
- [Background ](#background )
2024-06-17 11:17:07 +08:00
- [Recommended Release ](#recommended-release )
2024-03-02 19:49:30 +08:00
- [News ](#news )
2024-02-02 08:56:31 +01:00
- [OS ](#os )
2024-04-07 10:55:59 +08:00
- [Hardware ](#hardware )
2024-02-02 08:56:31 +01:00
- [Docker ](#docker )
- [Linux ](#linux )
- [Windows ](#windows )
- [Environment Variable ](#environment-variable )
2024-04-12 10:52:36 +02:00
- [Known Issue ](#known-issues )
- [Q&A ](#qa )
- [TODO ](#todo )
2024-01-28 21:26:23 +05:30
## Background
2024-03-28 16:01:47 +00:00
**SYCL** is a high-level parallel programming model designed to improve developers productivity writing code across various hardware accelerators such as CPUs, GPUs, and FPGAs. It is a single-source language designed for heterogeneous computing and based on standard C++17.
2024-01-28 21:26:23 +05:30
2025-05-19 14:38:20 +01:00
**oneAPI** is an open ecosystem and a standard-based specification, supporting multiple architectures including but not limited to Intel CPUs, GPUs and FPGAs. The key components of the oneAPI ecosystem include:
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
- **DPCPP** *(Data Parallel C++)* : The primary oneAPI SYCL implementation, which includes the icpx/icx Compilers.
2025-04-01 10:24:29 +02:00
- **oneAPI Libraries**: A set of highly optimized libraries targeting multiple domains *(e.g. Intel oneMKL, oneMath and oneDNN)* .
2025-05-19 14:38:20 +01:00
- **oneAPI LevelZero**: A high performance low level interface for fine-grained control over Intel iGPUs and dGPUs.
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
### Llama.cpp + SYCL
2024-01-28 21:26:23 +05:30
2025-05-19 14:38:20 +01:00
The llama.cpp SYCL backend is primarily designed for **Intel GPUs** .
2026-02-02 21:06:21 +08:00
SYCL cross-platform capabilities enable support for other vendor GPUs as well.
2024-01-28 21:26:23 +05:30
2024-06-17 11:17:07 +08:00
## Recommended Release
2025-05-19 14:38:20 +01:00
The following releases are verified and recommended:
2024-06-17 11:17:07 +08:00
2024-11-20 13:54:25 +08:00
|Commit ID|Tag|Release|Verified Platform| Update date|
|-|-|-|-|-|
2026-01-30 09:46:57 +08:00
|24e86cae7219b0f3ede1d5abdf5bf3ad515cccb8|b5377 |[llama-b5377-bin-win-sycl-x64.zip ](https://github.com/ggml-org/llama.cpp/releases/download/b5377/llama-b5377-bin-win-sycl-x64.zip ) |Arc B580/Linux/oneAPI 2025.1<br>LNL Arc GPU/Windows 11/oneAPI 2025.1.1|2025-05-15|
|3bcd40b3c593d14261fb2abfabad3c0fb5b9e318|b4040 |[llama-b4040-bin-win-sycl-x64.zip ](https://github.com/ggml-org/llama.cpp/releases/download/b4040/llama-b4040-bin-win-sycl-x64.zip ) |Arc A770/Linux/oneAPI 2024.1<br>MTL Arc GPU/Windows 11/oneAPI 2024.1| 2024-11-19|
|fb76ec31a9914b7761c1727303ab30380fd4f05c|b3038 |[llama-b3038-bin-win-sycl-x64.zip ](https://github.com/ggml-org/llama.cpp/releases/download/b3038/llama-b3038-bin-win-sycl-x64.zip ) |Arc A770/Linux/oneAPI 2024.1<br>MTL Arc GPU/Windows 11/oneAPI 2024.1||
2024-06-17 11:17:07 +08:00
2024-03-02 19:49:30 +08:00
## News
2026-02-02 21:06:21 +08:00
- 2026.02
- Remove support for Nvidia & AMD GPU, because the oneAPI plugin for Nvidia & AMD GPU is unavailable: download/installation channels are out of work. User can't build up the software for Nvidia & AMD GPU.
2025-11-29 20:59:44 +08:00
- 2025.11
- Support malloc memory on device more than 4GB.
2025-02-24 22:33:23 +08:00
- 2025.2
- Optimize MUL_MAT Q4_0 on Intel GPU for all dGPUs and built-in GPUs since MTL. Increase the performance of LLM (llama-2-7b.Q4_0.gguf) 21%-87% on Intel GPUs (MTL, ARL-H, Arc, Flex, PVC).
|GPU|Base tokens/s|Increased tokens/s|Percent|
|-|-|-|-|
|PVC 1550|39|73|+87%|
|Flex 170|39|50|+28%|
2026-01-30 09:46:57 +08:00
|Arc A770|42|55|+30%|
2025-02-24 22:33:23 +08:00
|MTL|13|16|+23%|
|ARL-H|14|17|+21%|
2024-11-15 04:09:12 +01:00
- 2024.11
- Use syclcompat to improve the performance on some platforms. This requires to use oneAPI 2025.0 or newer.
2024-08-22 12:50:10 +08:00
- 2024.8
- Use oneDNN as the default GEMM library, improve the compatibility for new Intel GPUs.
2024-06-17 11:17:07 +08:00
- 2024.5
2026-01-30 09:46:57 +08:00
- Performance is increased: 34 -> 37 tokens/s of llama-2-7b.Q4_0 on Arc A770.
2024-06-17 11:17:07 +08:00
- Arch Linux is verified successfully.
2024-04-07 10:55:59 +08:00
- 2024.4
- Support data types: GGML_TYPE_IQ4_NL, GGML_TYPE_IQ4_XS, GGML_TYPE_IQ3_XXS, GGML_TYPE_IQ3_S, GGML_TYPE_IQ2_XXS, GGML_TYPE_IQ2_XS, GGML_TYPE_IQ2_S, GGML_TYPE_IQ1_S, GGML_TYPE_IQ1_M.
2024-03-02 19:49:30 +08:00
- 2024.3
2024-04-07 10:55:59 +08:00
- Release binary files of Windows.
2024-03-22 15:19:37 +08:00
- A blog is published: **Run LLM on all Intel GPUs Using llama.cpp** : [intel.com ](https://www.intel.com/content/www/us/en/developer/articles/technical/run-llm-on-all-gpus-using-llama-cpp-artical.html ) or [medium.com ](https://medium.com/@jianyu_neo/run-llm-on-all-intel-gpus-using-llama-cpp-fd2e2dcbd9bd ).
2025-02-15 16:40:57 +02:00
- New base line is ready: [tag b2437 ](https://github.com/ggml-org/llama.cpp/tree/b2437 ).
2024-03-02 19:49:30 +08:00
- Support multiple cards: ** --split-mode**: [none|layer]; not support [row], it's on developing.
- Support to assign main GPU by ** --main-gpu**, replace $GGML_SYCL_DEVICE.
- Support detecting all GPUs with level-zero and same top **Max compute units** .
- Support OPs
- hardsigmoid
- hardswish
- pool2d
- 2024.1
- Create SYCL backend for Intel GPU.
- Support Windows build
2024-01-28 21:26:23 +05:30
## OS
2024-05-29 12:23:47 +05:30
| OS | Status | Verified |
|---------|---------|------------------------------------------------|
| Linux | Support | Ubuntu 22.04, Fedora Silverblue 39, Arch Linux |
| Windows | Support | Windows 11 |
2024-01-28 21:26:23 +05:30
2024-04-07 10:55:59 +08:00
## Hardware
2024-01-28 21:26:23 +05:30
2024-04-07 10:55:59 +08:00
### Intel GPU
2024-03-28 16:01:47 +00:00
2024-08-11 16:37:43 +08:00
SYCL backend supports Intel GPU Family:
- Intel Data Center Max Series
- Intel Flex Series, Arc Series
- Intel Built-in Arc GPU
- Intel iGPU in Core CPU (11th Generation Core CPU and newer, refer to [oneAPI supported GPU ](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/intel-oneapi-base-toolkit-system-requirements.html#inpage-nav-1-1 )).
2025-12-16 04:45:09 -05:00
On older Intel GPUs, you may try [OpenCL ](/docs/backend/OPENCL.md ) although the performance is not optimal, and some GPUs may not support OpenCL nor have any GPGPU capabilities.
2024-08-11 16:37:43 +08:00
#### Verified devices
2024-02-02 15:53:27 +08:00
2024-04-12 10:52:36 +02:00
| Intel GPU | Status | Verified Model |
|-------------------------------|---------|---------------------------------------|
2024-04-14 10:42:29 +08:00
| Intel Data Center Max Series | Support | Max 1550, 1100 |
2024-04-12 10:52:36 +02:00
| Intel Data Center Flex Series | Support | Flex 170 |
2026-02-02 21:06:21 +08:00
| Intel Arc A-Series | Support | Arc A770, Arc A730M, Arc A750 |
| Intel Arc B-Series | Support | Arc B580 |
2025-05-19 14:38:20 +01:00
| Intel built-in Arc GPU | Support | built-in Arc GPU in Meteor Lake, Arrow Lake, Lunar Lake |
| Intel iGPU | Support | iGPU in 13700k, 13400, i5-1250P, i7-1260P, i7-1165G7 |
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
*Notes:*
2024-02-02 15:53:27 +08:00
2024-04-07 10:55:59 +08:00
- **Memory**
2026-02-01 18:24:00 +08:00
- The device memory is a limitation when running a large model. The loaded model size, *`llm_load_tensors: buffer_size`* , is displayed in the log when running `./bin/llama-completion` .
2024-04-07 10:55:59 +08:00
- Please make sure the GPU shared memory from the host is large enough to account for the model's size. For e.g. the *llama-2-7b.Q4_0* requires at least 8.0GB for integrated GPU and 4.0GB for discrete GPU.
2024-02-02 15:53:27 +08:00
2024-04-07 10:55:59 +08:00
- **Execution Unit (EU)**
- If the iGPU has less than 80 EUs, the inference speed will likely be too slow for practical use.
2024-02-02 15:53:27 +08:00
2024-04-14 10:42:29 +08:00
### Other Vendor GPU
2024-02-02 15:53:27 +08:00
2026-02-02 21:06:21 +08:00
NA
2024-03-11 01:13:57 +00:00
2024-02-02 08:56:31 +01:00
## Docker
2025-05-19 14:38:20 +01:00
The docker build option is currently limited to *Intel GPU* targets.
2024-04-14 10:42:29 +08:00
2024-03-28 16:01:47 +00:00
### Build image
2025-05-19 14:38:20 +01:00
2024-02-02 08:56:31 +01:00
```sh
2025-10-02 15:16:25 +08:00
# Using FP32
docker build -t llama-cpp-sycl --build-arg= "GGML_SYCL_F16=OFF" --target light -f .devops/intel.Dockerfile .
2026-02-02 21:06:21 +08:00
# Using FP16
docker build -t llama-cpp-sycl --build-arg= "GGML_SYCL_F16=ON" --target light -f .devops/intel.Dockerfile .
2024-02-02 08:56:31 +01:00
```
2024-03-28 16:01:47 +00:00
*Notes* :
2024-06-13 00:41:52 +01:00
You can also use the `.devops/llama-server-intel.Dockerfile` , which builds the *"server"* alternative.
2025-05-19 14:38:20 +01:00
Check the [documentation for Docker ](../docker.md ) to see the available images.
2024-03-28 16:01:47 +00:00
### Run container
2024-02-02 08:56:31 +01:00
```sh
2024-03-28 16:01:47 +00:00
# First, find all the DRI cards
2024-02-02 08:56:31 +01:00
ls -la /dev/dri
2024-03-28 16:01:47 +00:00
# Then, pick the card that you want to use (here for e.g. /dev/dri/card1).
2025-10-02 15:16:25 +08:00
docker run -it --rm -v "/path/to/models:/models" --device /dev/dri/renderD128:/dev/dri/renderD128 --device /dev/dri/card0:/dev/dri/card0 llama-cpp-sycl -m /models/7B/ggml-model-q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 33 -c 4096 -s 0
2024-02-02 08:56:31 +01:00
```
2024-03-28 16:01:47 +00:00
*Notes:*
- Docker has been tested successfully on native Linux. WSL support has not been verified yet.
- You may need to install Intel GPU driver on the **host** machine *(Please refer to the [Linux configuration](#linux) for details)* .
2024-01-28 21:26:23 +05:30
## Linux
2024-03-28 16:01:47 +00:00
### I. Setup Environment
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
1. **Install GPU drivers**
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
- **Intel GPU**
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
Intel data center GPUs drivers installation guide and download page can be found here: [Get intel dGPU Drivers ](https://dgpu-docs.intel.com/driver/installation.html#ubuntu-install-steps ).
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
*Note* : for client GPUs *(iGPU & Arc A-Series)* , please refer to the [client iGPU driver installation ](https://dgpu-docs.intel.com/driver/client/overview.html ).
Once installed, add the user(s) to the `video` and `render` groups.
2024-01-28 21:26:23 +05:30
2024-02-02 08:56:31 +01:00
```sh
2024-03-28 16:01:47 +00:00
sudo usermod -aG render $USER
sudo usermod -aG video $USER
2024-01-28 21:26:23 +05:30
```
2024-03-28 16:01:47 +00:00
*Note* : logout/re-login for the changes to take effect.
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
Verify installation through `clinfo` :
2024-01-28 21:26:23 +05:30
2024-02-02 08:56:31 +01:00
```sh
2024-01-28 21:26:23 +05:30
sudo apt install clinfo
sudo clinfo -l
```
2024-03-28 16:01:47 +00:00
Sample output:
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
```sh
2024-01-28 21:26:23 +05:30
Platform #0: Intel(R) OpenCL Graphics
` -- Device #0: Intel(R) Arc(TM) A770 Graphics
Platform #0: Intel(R) OpenCL HD Graphics
` -- Device #0: Intel(R) Iris(R) Xe Graphics [0x9a49]
```
2024-03-28 16:01:47 +00:00
2. **Install Intel® oneAPI Base toolkit**
2024-01-28 21:26:23 +05:30
2025-10-02 15:16:25 +08:00
SYCL backend depends on:
- Intel® oneAPI DPC++/C++ compiler/running-time.
- Intel® oneAPI DPC++/C++ library (oneDPL).
- Intel® oneAPI Deep Neural Network Library (oneDNN).
- Intel® oneAPI Math Kernel Library (oneMKL).
2024-04-14 10:42:29 +08:00
- **For Intel GPU**
2024-03-28 16:01:47 +00:00
2025-10-02 15:16:25 +08:00
All above are included in both **Intel® oneAPI Base toolkit** and **Intel® Deep Learning Essentials** packages.
It's recommended to install **Intel® Deep Learning Essentials** which only provides the necessary libraries with less size.
The **Intel® oneAPI Base toolkit** and **Intel® Deep Learning Essentials** can be obtained from the official [Intel® oneAPI Base Toolkit ](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html ) page.
2024-03-28 16:01:47 +00:00
Please follow the instructions for downloading and installing the Toolkit for Linux, and preferably keep the default installation values unchanged, notably the installation path *(`/opt/intel/oneapi` by default)* .
Following guidelines/code snippets assume the default installation values. Otherwise, please make sure the necessary changes are reflected where applicable.
2024-08-22 12:50:10 +08:00
Upon a successful installation, SYCL is enabled for the available intel devices, along with relevant libraries such as oneAPI oneDNN for Intel GPUs.
2024-03-28 16:01:47 +00:00
2025-10-02 15:16:25 +08:00
|Verified release|
|-|
|2025.2.1|
|2025.1|
|2024.1|
2024-03-28 16:01:47 +00:00
3. **Verify installation and environment**
In order to check the available SYCL devices on the machine, please use the `sycl-ls` command.
```sh
source /opt/intel/oneapi/setvars.sh
2024-01-28 21:26:23 +05:30
sycl-ls
```
2024-03-28 16:01:47 +00:00
- **Intel GPU**
2025-05-19 14:38:20 +01:00
When targeting an intel GPU, the user should expect one or more devices among the available SYCL devices. Please make sure that at least one GPU is present via `sycl-ls` , for instance `[level_zero:gpu]` in the sample output below:
2024-01-28 21:26:23 +05:30
```
2025-10-02 15:16:25 +08:00
[level_zero:gpu][level_zero:0] Intel(R) oneAPI Unified Runtime over Level-Zero, Intel(R) Arc(TM) A770 Graphics 12.55.8 [1.3.29735+27]
[level_zero:gpu][level_zero:1] Intel(R) oneAPI Unified Runtime over Level-Zero, Intel(R) UHD Graphics 730 12.2.0 [1.3.29735+27]
[opencl:cpu][opencl:0] Intel(R) OpenCL, 13th Gen Intel(R) Core(TM) i5-13400 OpenCL 3.0 (Build 0) [2025.20.8.0.06_160000]
[opencl:gpu][opencl:1] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A770 Graphics OpenCL 3.0 NEO [24.39.31294]
[opencl:gpu][opencl:2] Intel(R) OpenCL Graphics, Intel(R) UHD Graphics 730 OpenCL 3.0 NEO [24.39.31294]
2024-01-28 21:26:23 +05:30
```
2024-03-28 16:01:47 +00:00
### II. Build llama.cpp
#### Intel GPU
2024-08-11 16:37:43 +08:00
2025-05-19 14:38:20 +01:00
```sh
2024-08-11 16:37:43 +08:00
./examples/sycl/build.sh
```
or
2024-02-02 08:56:31 +01:00
```sh
2024-03-28 16:01:47 +00:00
# Export relevant ENV variables
2024-01-28 21:26:23 +05:30
source /opt/intel/oneapi/setvars.sh
2024-04-23 02:53:18 +02:00
# Option 1: Use FP32 (recommended for better performance in most cases)
2024-06-26 18:33:02 +03:00
cmake -B build -DGGML_SYCL= ON -DCMAKE_C_COMPILER= icx -DCMAKE_CXX_COMPILER= icpx
2024-04-14 10:42:29 +08:00
2024-04-23 02:53:18 +02:00
# Option 2: Use FP16
2024-06-26 18:33:02 +03:00
cmake -B build -DGGML_SYCL= ON -DCMAKE_C_COMPILER= icx -DCMAKE_CXX_COMPILER= icpx -DGGML_SYCL_F16= ON
2024-04-23 02:53:18 +02:00
2024-04-29 17:02:45 +01:00
# build all binary
cmake --build build --config Release -j -v
2024-01-28 21:26:23 +05:30
```
2025-04-03 13:12:39 +01:00
It is possible to come across some precision issues when running tests that stem from using faster
instructions, which can be circumvented by setting the environment variable `SYCL_PROGRAM_COMPILE_OPTIONS`
as `-cl-fp32-correctly-rounded-divide-sqrt`
2024-03-28 16:01:47 +00:00
### III. Run the inference
2024-01-28 21:26:23 +05:30
2024-08-11 16:37:43 +08:00
#### Retrieve and prepare model
2024-01-28 21:26:23 +05:30
2026-02-18 16:50:23 +01:00
You can refer to the general [*Obtaining and quantizing models* ](../../README.md#obtaining-and-quantizing-models ) guide for model preparation, or download an already quantized model like [llama-2-7b.Q4_0.gguf ](https://huggingface.co/TheBloke/Llama-2-7B-GGUF/resolve/main/llama-2-7b.Q4_0.gguf?download=true ) or [Meta-Llama-3-8B-Instruct-Q4_0.gguf ](https://huggingface.co/aptha/Meta-Llama-3-8B-Instruct-Q4_0-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_0.gguf ).
2024-02-02 15:53:27 +08:00
2024-08-11 16:37:43 +08:00
##### Check device
1. Enable oneAPI running environment
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
```sh
2024-01-28 21:26:23 +05:30
source /opt/intel/oneapi/setvars.sh
```
2024-08-11 16:37:43 +08:00
2. List devices information
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
Similar to the native `sycl-ls` , available SYCL devices can be queried as follow:
2024-01-28 21:26:23 +05:30
2024-02-02 08:56:31 +01:00
```sh
2024-06-13 00:41:52 +01:00
./build/bin/llama-ls-sycl-device
2024-01-28 21:26:23 +05:30
```
2024-08-11 16:37:43 +08:00
2024-07-25 11:45:18 +00:00
This command will only display the selected backend that is supported by SYCL. The default backend is level_zero. For example, in a system with 2 *intel GPU* it would look like the following:
2024-01-28 21:26:23 +05:30
```
2024-07-25 11:45:18 +00:00
found 2 SYCL devices:
2024-03-20 11:21:41 +08:00
| | | |Compute |Max compute|Max work|Max sub| |
|ID| Device Type| Name|capability|units |group |group |Global mem size|
|--|------------------|---------------------------------------------|----------|-----------|--------|-------|---------------|
| 0|[level_zero:gpu:0]| Intel(R) Arc(TM) A770 Graphics| 1.3| 512| 1024| 32| 16225243136|
| 1|[level_zero:gpu:1]| Intel(R) UHD Graphics 770| 1.3| 32| 512| 32| 53651849216|
2024-01-28 21:26:23 +05:30
```
2024-08-11 16:37:43 +08:00
#### Choose level-zero devices
2024-01-28 21:26:23 +05:30
2024-08-11 16:37:43 +08:00
|Chosen Device ID|Setting|
|-|-|
2024-11-07 18:19:10 +11:00
|0|`export ONEAPI_DEVICE_SELECTOR="level_zero:0"` or no action|
2024-08-11 16:37:43 +08:00
|1|`export ONEAPI_DEVICE_SELECTOR="level_zero:1"` |
|0 & 1|`export ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"` |
#### Execute
Choose one of following methods to run.
1. Script
- Use device 0:
```sh
2026-02-01 18:24:00 +08:00
./examples/sycl/test.sh -mg 0
2024-08-11 16:37:43 +08:00
```
- Use multiple devices:
```sh
2026-02-01 18:24:00 +08:00
./examples/sycl/test.sh
2024-08-11 16:37:43 +08:00
```
2. Command line
Launch inference
2024-01-28 21:26:23 +05:30
2024-03-20 11:21:41 +08:00
There are two device selection modes:
2024-08-11 16:37:43 +08:00
- Single device: Use one device assigned by user. Default device id is 0.
2024-07-25 11:45:18 +00:00
- Multiple devices: Automatically choose the devices with the same backend.
In two device selection modes, the default SYCL backend is level_zero, you can choose other backend supported by SYCL by setting environment variable ONEAPI_DEVICE_SELECTOR.
2024-03-20 11:21:41 +08:00
2024-04-12 10:52:36 +02:00
| Device selection | Parameter |
|------------------|----------------------------------------|
| Single device | --split-mode none --main-gpu DEVICE_ID |
| Multiple devices | --split-mode layer (default) |
2024-03-20 11:21:41 +08:00
Examples:
- Use device 0:
2024-01-28 21:26:23 +05:30
2024-02-02 08:56:31 +01:00
```sh
2026-02-01 18:24:00 +08:00
ZES_ENABLE_SYSMAN = 1 ./build/bin/llama-completion -no-cnv -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 99 -sm none -mg 0 --mmap
2024-03-20 11:21:41 +08:00
```
- Use multiple devices:
```sh
2026-02-01 18:24:00 +08:00
ZES_ENABLE_SYSMAN = 1 ./build/bin/llama-completion -no-cnv -m models/llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:" -n 400 -e -ngl 99 -sm layer --mmap
2024-01-28 21:26:23 +05:30
```
2024-03-28 16:01:47 +00:00
*Notes:*
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
- Upon execution, verify the selected device(s) ID(s) in the output log, which can for instance be displayed as follow:
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
```sh
2024-03-20 11:21:41 +08:00
detect 1 SYCL GPUs: [ 0] with top Max compute units:512
2024-01-28 21:26:23 +05:30
```
2024-03-20 11:21:41 +08:00
Or
2024-03-28 16:01:47 +00:00
```sh
2024-03-20 11:21:41 +08:00
use 1 SYCL GPUs: [ 0] with Max compute units:512
```
2024-01-31 10:38:07 +08:00
## Windows
2024-03-28 16:01:47 +00:00
### I. Setup Environment
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
1. Install GPU driver
2024-01-31 10:38:07 +08:00
2025-05-19 14:38:20 +01:00
Intel GPU drivers instructions guide and download page can be found here: [Get Intel GPU Drivers ](https://www.intel.com/content/www/us/en/products/docs/discrete-gpus/arc/software/drivers.html ).
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
2. Install Visual Studio
2024-02-02 15:53:27 +08:00
2024-03-28 16:01:47 +00:00
If you already have a recent version of Microsoft Visual Studio, you can skip this step. Otherwise, please refer to the official download page for [Microsoft Visual Studio ](https://visualstudio.microsoft.com/ ).
2024-02-02 15:53:27 +08:00
2024-03-28 16:01:47 +00:00
3. Install Intel® oneAPI Base toolkit
2024-02-02 15:53:27 +08:00
2025-10-02 15:16:25 +08:00
SYCL backend depends on:
- Intel® oneAPI DPC++/C++ compiler/running-time.
- Intel® oneAPI DPC++/C++ library (oneDPL).
- Intel® oneAPI Deep Neural Network Library (oneDNN).
- Intel® oneAPI Math Kernel Library (oneMKL).
All above are included in both **Intel® oneAPI Base toolkit** and **Intel® Deep Learning Essentials** packages.
It's recommended to install **Intel® Deep Learning Essentials** which only provides the necessary libraries with less size.
The **Intel® oneAPI Base toolkit** and **Intel® Deep Learning Essentials** can be obtained from the official [Intel® oneAPI Base Toolkit ](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html ) page.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
Please follow the instructions for downloading and installing the Toolkit for Windows, and preferably keep the default installation values unchanged, notably the installation path *(`C:\Program Files (x86)\Intel\oneAPI` by default)* .
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
Following guidelines/code snippets assume the default installation values. Otherwise, please make sure the necessary changes are reflected where applicable.
2024-01-31 10:38:07 +08:00
b. Enable oneAPI running environment:
2024-03-28 16:01:47 +00:00
- Type "oneAPI" in the search bar, then open the `Intel oneAPI command prompt for Intel 64 for Visual Studio 2022` App.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
- On the command prompt, enable the runtime environment with the following:
2024-01-31 10:38:07 +08:00
```
"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64
```
2025-04-04 16:00:46 +02:00
- if you are using Powershell, enable the runtime environment with the following:
```
cmd.exe "/K" '"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" && powershell'
```
2024-03-28 16:01:47 +00:00
c. Verify installation
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
In the oneAPI command line, run the following to print the available SYCL devices:
2024-01-31 10:38:07 +08:00
```
2024-08-11 16:37:43 +08:00
sycl-ls.exe
2024-01-31 10:38:07 +08:00
```
2024-03-28 16:01:47 +00:00
There should be one or more *level-zero* GPU devices displayed as ** [ext_oneapi_level_zero:gpu]**. Below is example of such output detecting an *intel Iris Xe* GPU as a Level-zero SYCL device:
2024-01-31 10:38:07 +08:00
Output (example):
```
[opencl:acc:0] Intel(R) FPGA Emulation Platform for OpenCL(TM), Intel(R) FPGA Emulation Device OpenCL 1.2 [2023.16.10.0.17_160000]
[opencl:cpu:1] Intel(R) OpenCL, 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz OpenCL 3.0 (Build 0) [2023.16.10.0.17_160000]
[opencl:gpu:2] Intel(R) OpenCL Graphics, Intel(R) Iris(R) Xe Graphics OpenCL 3.0 NEO [31.0.101.5186]
[ext_oneapi_level_zero:gpu:0] Intel(R) Level-Zero, Intel(R) Iris(R) Xe Graphics 1.3 [1.3.28044]
```
2024-03-28 16:01:47 +00:00
4. Install build tools
2024-01-31 10:38:07 +08:00
2024-06-20 13:19:05 +00:00
a. Download & install cmake for Windows: https://cmake.org/download/ (CMake can also be installed from Visual Studio Installer)
b. The new Visual Studio will install Ninja as default. (If not, please install it manually: https://ninja-build.org/)
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
### II. Build llama.cpp
2024-01-31 10:38:07 +08:00
2024-08-11 16:37:43 +08:00
You could download the release package for Windows directly, which including binary files and depended oneAPI dll files.
Choose one of following methods to build from source code.
2025-04-04 16:00:46 +02:00
#### 1. Script
2024-08-11 16:37:43 +08:00
```sh
.\e xamples\s ycl\w in-build-sycl.bat
```
2025-04-04 16:00:46 +02:00
#### 2. CMake
2024-08-11 16:37:43 +08:00
2024-03-28 16:01:47 +00:00
On the oneAPI command line window, step into the llama.cpp main directory and run the following:
2024-01-31 10:38:07 +08:00
```
@call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 --force
2024-04-23 02:53:18 +02:00
# Option 1: Use FP32 (recommended for better performance in most cases)
2024-06-26 18:33:02 +03:00
cmake -B build -G "Ninja" -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release
2024-04-23 02:53:18 +02:00
# Option 2: Or FP16
2024-06-26 18:33:02 +03:00
cmake -B build -G "Ninja" -DGGML_SYCL=ON -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release -DGGML_SYCL_F16=ON
2024-01-31 10:38:07 +08:00
2024-04-29 17:02:45 +01:00
cmake --build build --config Release -j
2024-01-31 10:38:07 +08:00
```
2024-06-20 13:19:05 +00:00
Or, use CMake presets to build:
2024-08-11 16:37:43 +08:00
2024-06-20 13:19:05 +00:00
```sh
cmake --preset x64-windows-sycl-release
2026-02-01 18:24:00 +08:00
cmake --build build-x64-windows-sycl-release -j --target llama-completion
2024-06-20 13:19:05 +00:00
2024-06-26 18:33:02 +03:00
cmake -DGGML_SYCL_F16= ON --preset x64-windows-sycl-release
2026-02-01 18:24:00 +08:00
cmake --build build-x64-windows-sycl-release -j --target llama-completion
2024-06-20 13:19:05 +00:00
cmake --preset x64-windows-sycl-debug
2026-02-01 18:24:00 +08:00
cmake --build build-x64-windows-sycl-debug -j --target llama-completion
2024-06-20 13:19:05 +00:00
```
2025-04-04 16:00:46 +02:00
#### 3. Visual Studio
2024-08-11 16:37:43 +08:00
2025-04-04 16:00:46 +02:00
You have two options to use Visual Studio to build llama.cpp:
- As CMake Project using CMake presets.
- Creating a Visual Studio solution to handle the project.
**Note** :
All following commands are executed in PowerShell.
##### - Open as a CMake Project
You can use Visual Studio to open the `llama.cpp` folder directly as a CMake project. Before compiling, select one of the SYCL CMake presets:
- `x64-windows-sycl-release`
- `x64-windows-sycl-debug`
2024-06-20 13:19:05 +00:00
2024-03-28 16:01:47 +00:00
*Notes:*
2025-04-04 16:00:46 +02:00
- For a minimal experimental setup, you can build only the inference executable using:
2024-01-31 10:38:07 +08:00
2025-04-04 16:00:46 +02:00
```Powershell
2026-02-01 18:24:00 +08:00
cmake --build build --config Release -j --target llama-completion
2025-04-04 16:00:46 +02:00
` ``
##### - Generating a Visual Studio Solution
You can use Visual Studio solution to build and work on llama.cpp on Windows. You need to convert the CMake Project into a ` .sln` file.
If you want to use the Intel C++ Compiler for the entire ` llama.cpp` project, run the following command:
` ``Powershell
cmake -B build -G "Visual Studio 17 2022" -T "Intel C++ Compiler 2025" -A x64 -DGGML_SYCL=ON -DCMAKE_BUILD_TYPE=Release
` ``
If you prefer to use the Intel C++ Compiler only for ` ggml-sycl`, ensure that ` ggml` and its backend libraries are built as shared libraries ( i.e. ` -DBUILD_SHARED_LIBRARIES=ON`, this is default behaviour):
` ``Powershell
cmake -B build -G "Visual Studio 17 2022" -A x64 -DGGML_SYCL=ON -DCMAKE_BUILD_TYPE=Release \
-DSYCL_INCLUDE_DIR="C:\Program Files (x86)\Intel\oneAPI\compiler\latest\include" \
-DSYCL_LIBRARY_DIR="C:\Program Files (x86)\Intel\oneAPI\compiler\latest\lib"
` ``
If successful the build files have been written to: *path/to/llama.cpp/build*
Open the project file **build/llama.cpp.sln** with Visual Studio.
Once the Visual Studio solution is created, follow these steps:
1. Open the solution in Visual Studio.
2. Right-click on ` ggml-sycl` and select **Properties**.
3. In the left column, expand **C/C++** and select **DPC++**.
4. In the right panel, find **Enable SYCL Offload** and set it to ` Yes`.
5. Apply the changes and save.
*Navigation Path:*
` ``
Properties -> C/C++ -> DPC++ -> Enable SYCL Offload (Yes)
` ``
Now, you can build ` llama.cpp` with the SYCL backend as a Visual Studio project.
To do it from menu: ` Build -> Build Solution`.
Once it is completed, final results will be in **build/Release/bin**
*Additional Note*
- You can avoid specifying ` SYCL_INCLUDE_DIR` and ` SYCL_LIBRARY_DIR` in the CMake command by setting the environment variables:
- ` SYCL_INCLUDE_DIR_HINT`
- ` SYCL_LIBRARY_DIR_HINT`
- Above instruction has been tested with Visual Studio 17 Community edition and oneAPI 2025.0. We expect them to work also with future version if the instructions are adapted accordingly.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
### III. Run the inference
2024-01-31 10:38:07 +08:00
2024-08-11 16:37:43 +08:00
#### Retrieve and prepare model
2024-01-31 10:38:07 +08:00
2026-02-18 16:50:23 +01:00
You can refer to the general [*Obtaining and quantizing models*](../../README.md#obtaining-and-quantizing-models) guide for model preparation, or download an already quantized model like [llama-2-7b.Q4_0.gguf](https://huggingface.co/TheBloke/Llama-2-7B-GGUF/blob/main/llama-2-7b.Q4_0.gguf) or [Meta-Llama-3-8B-Instruct-Q4_0.gguf](https://huggingface.co/aptha/Meta-Llama-3-8B-Instruct-Q4_0-GGUF/resolve/main/Meta-Llama-3-8B-Instruct-Q4_0.gguf).
2024-02-02 15:53:27 +08:00
2024-08-11 16:37:43 +08:00
##### Check device
1. Enable oneAPI running environment
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
On the oneAPI command line window, run the following and step into the llama.cpp directory:
2024-01-31 10:38:07 +08:00
` ``
"C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64
` ``
2024-08-11 16:37:43 +08:00
2. List devices information
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
Similar to the native ` sycl-ls`, available SYCL devices can be queried as follow:
2024-01-31 10:38:07 +08:00
` ``
2024-08-11 16:37:43 +08:00
build\bin\llama-ls-sycl-device.exe
2024-01-31 10:38:07 +08:00
` ``
2025-05-19 14:38:20 +01:00
This command will only display the selected backend that is supported by SYCL. The default backend is level_zero. For example, in a system with 2 *Intel GPU* it would look like the following:
2024-01-31 10:38:07 +08:00
` ``
2024-07-25 11:45:18 +00:00
found 2 SYCL devices:
2024-03-20 11:21:41 +08:00
| | | |Compute |Max compute|Max work|Max sub| |
|ID| Device Type| Name|capability|units |group |group |Global mem size|
|--|------------------|---------------------------------------------|----------|-----------|--------|-------|---------------|
| 0|[level_zero:gpu:0]| Intel(R) Arc(TM) A770 Graphics| 1.3| 512| 1024| 32| 16225243136|
| 1|[level_zero:gpu:1]| Intel(R) UHD Graphics 770| 1.3| 32| 512| 32| 53651849216|
2024-01-31 10:38:07 +08:00
` ``
2025-05-19 14:38:20 +01:00
2024-08-11 16:37:43 +08:00
#### Choose level-zero devices
2024-01-31 10:38:07 +08:00
2024-08-11 16:37:43 +08:00
|Chosen Device ID|Setting|
|-|-|
2025-05-19 14:38:20 +01:00
|0|Default option. You may also want to ` set ONEAPI_DEVICE_SELECTOR="level_zero:0"`|
2024-08-11 16:37:43 +08:00
|1|` set ONEAPI_DEVICE_SELECTOR="level_zero:1"`|
2025-05-19 14:38:20 +01:00
|0 & 1|` set ONEAPI_DEVICE_SELECTOR="level_zero:0;level_zero:1"` or ` set ONEAPI_DEVICE_SELECTOR="level_zero:*"`|
2024-01-31 10:38:07 +08:00
2024-08-11 16:37:43 +08:00
#### Execute
Choose one of following methods to run.
1. Script
` ``
2026-02-01 18:24:00 +08:00
examples\sycl\win-test.bat
2024-08-11 16:37:43 +08:00
` ``
2. Command line
Launch inference
2024-03-20 11:21:41 +08:00
There are two device selection modes:
2024-07-25 11:45:18 +00:00
- Single device: Use one device assigned by user. Default device id is 0.
- Multiple devices: Automatically choose the devices with the same backend.
In two device selection modes, the default SYCL backend is level_zero, you can choose other backend supported by SYCL by setting environment variable ONEAPI_DEVICE_SELECTOR.
2024-03-20 11:21:41 +08:00
2024-04-12 10:52:36 +02:00
| Device selection | Parameter |
|------------------|----------------------------------------|
| Single device | --split-mode none --main-gpu DEVICE_ID |
| Multiple devices | --split-mode layer (default) |
2024-03-20 11:21:41 +08:00
Examples:
- Use device 0:
2024-01-31 10:38:07 +08:00
` ``
2026-02-01 18:24:00 +08:00
build\bin\llama-completion.exe -no-cnv -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 99 -sm none -mg 0 --mmap
2024-03-20 11:21:41 +08:00
` ``
- Use multiple devices:
` ``
2026-02-01 18:24:00 +08:00
build\bin\llama-completion.exe -no-cnv -m models\llama-2-7b.Q4_0.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 99 -sm layer --mmap
2024-01-31 10:38:07 +08:00
` ``
Note:
2024-03-28 16:01:47 +00:00
- Upon execution, verify the selected device(s) ID(s) in the output log, which can for instance be displayed as follow:
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
` ``sh
2024-03-20 11:21:41 +08:00
detect 1 SYCL GPUs: [0] with top Max compute units:512
` ``
2025-05-19 14:38:20 +01:00
2024-03-20 11:21:41 +08:00
Or
2025-05-19 14:38:20 +01:00
2024-03-28 16:01:47 +00:00
` ``sh
2024-03-20 11:21:41 +08:00
use 1 SYCL GPUs: [0] with Max compute units:512
2024-01-31 10:38:07 +08:00
` ``
2024-01-28 21:26:23 +05:30
2024-08-11 16:37:43 +08:00
2024-01-28 21:26:23 +05:30
## Environment Variable
#### Build
2024-10-02 13:57:18 +01:00
| Name | Value | Function |
|--------------------|---------------------------------------|---------------------------------------------|
2025-05-19 14:38:20 +01:00
| GGML_SYCL | ON (mandatory) | Enable build with SYCL code path. |
2026-02-02 21:06:21 +08:00
| GGML_SYCL_TARGET | INTEL *(default)* | Set the SYCL target device type. |
| GGML_SYCL_DEVICE_ARCH | Optional | Set the SYCL device architecture. Setting the device architecture can improve the performance. See the table [--offload-arch](https://github.com/intel/llvm/blob/sycl/sycl/doc/design/OffloadDesign.md#--offload-arch) for a list of valid architectures. |
2025-05-19 14:38:20 +01:00
| GGML_SYCL_F16 | OFF *(default)* \|ON *(optional)* | Enable FP16 build with SYCL code path. (1.) |
2026-02-02 21:06:21 +08:00
| GGML_SYCL_GRAPH | OFF *(default)* \|ON *(Optional)* | Enable build with [SYCL Graph extension](https://github.com/intel/llvm/blob/sycl/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc). |
2025-05-15 16:53:41 +02:00
| GGML_SYCL_DNN | ON *(default)* \|OFF *(Optional)* | Enable build with oneDNN. |
2024-08-11 16:37:43 +08:00
| CMAKE_C_COMPILER | ` icx` *(Linux)*, ` icx/cl` *(Windows)* | Set ` icx` compiler for SYCL code path. |
| CMAKE_CXX_COMPILER | ` icpx` *(Linux)*, ` icx` *(Windows)* | Set ` icpx/icx` compiler for SYCL code path. |
2024-01-28 21:26:23 +05:30
2026-02-02 21:06:21 +08:00
1. FP32 or FP16 have different performance impact to LLM. Recommended to test them for better prompt processing performance on your models. You need to rebuild the code after change ` GGML_SYCL_F16=OFF/ON`.
2025-05-19 14:38:20 +01:00
2024-03-28 16:01:47 +00:00
#### Runtime
2024-01-28 21:26:23 +05:30
2024-04-12 10:52:36 +02:00
| Name | Value | Function |
|-------------------|------------------|---------------------------------------------------------------------------------------------------------------------------|
| GGML_SYCL_DEBUG | 0 (default) or 1 | Enable log function by macro: GGML_SYCL_DEBUG |
2025-06-25 17:09:55 +01:00
| GGML_SYCL_DISABLE_OPT | 0 (default) or 1 | Disable optimize features for Intel GPUs. (Recommended to 1 for intel devices older than Gen 10) |
2026-02-02 21:06:21 +08:00
| GGML_SYCL_DISABLE_GRAPH | 0 or 1 (default) | Disable running computations through SYCL Graphs feature. Disabled by default because SYCL Graph is still on development, no better performance. |
2025-05-15 16:53:41 +02:00
| GGML_SYCL_DISABLE_DNN | 0 (default) or 1 | Disable running computations through oneDNN and always use oneMKL. |
2024-04-12 10:52:36 +02:00
| ZES_ENABLE_SYSMAN | 0 (default) or 1 | Support to get free memory of GPU by sycl::aspect::ext_intel_free_memory.<br>Recommended to use when --split-mode = layer |
2025-11-29 20:59:44 +08:00
| UR_L0_ENABLE_RELAXED_ALLOCATION_LIMITS | 0 (default) or 1 | Support malloc device memory more than 4GB.|
2024-01-28 21:26:23 +05:30
2025-02-24 22:33:23 +08:00
2024-03-28 16:01:47 +00:00
## Known Issues
2024-01-28 21:26:23 +05:30
2024-03-28 16:01:47 +00:00
- ` Split-mode:[row]` is not supported.
2024-03-02 19:49:30 +08:00
2024-01-31 10:38:07 +08:00
## Q&A
2025-05-19 14:38:20 +01:00
- Error: ` error while loading shared libraries: libsycl.so: cannot open shared object file: No such file or directory`.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
- Potential cause: Unavailable oneAPI installation or not set ENV variables.
- Solution: Install *oneAPI base toolkit* and enable its ENV through: ` source /opt/intel/oneapi/setvars.sh`.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
- General compiler error:
2024-01-31 10:38:07 +08:00
2024-04-14 10:42:29 +08:00
- Remove **build** folder or try a clean-build.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
- I can **not** see ` [ext_oneapi_level_zero:gpu]` afer installing the GPU driver on Linux.
2024-01-31 10:38:07 +08:00
2024-03-28 16:01:47 +00:00
Please double-check with ` sudo sycl-ls`.
2024-02-02 15:53:27 +08:00
2024-03-28 16:01:47 +00:00
If it's present in the list, please add video/render group to your user then **logout/login** or restart your system:
2024-02-02 15:53:27 +08:00
` ``
2024-03-28 16:01:47 +00:00
sudo usermod -aG render $USER
sudo usermod -aG video $USER
2024-02-02 15:53:27 +08:00
` ``
2024-03-28 16:01:47 +00:00
Otherwise, please double-check the GPU driver installation steps.
2024-02-02 15:53:27 +08:00
2024-08-11 16:37:43 +08:00
- Can I report Ollama issue on Intel GPU to llama.cpp SYCL backend?
No. We can't support Ollama issue directly, because we aren't familiar with Ollama.
2025-12-24 11:19:47 +02:00
Suggest reproducing on llama.cpp and report similar issue to llama.cpp. We will support it.
2024-08-11 16:37:43 +08:00
It's same for other projects including llama.cpp SYCL backend.
2025-05-19 14:38:20 +01:00
- ` Native API failed. Native API returns: 39 (UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY)`, ` ggml_backend_sycl_buffer_type_alloc_buffer: can't allocate 3503030272 Bytes of memory on device`, or ` failed to allocate SYCL0 buffer`
2024-09-18 08:30:31 +08:00
2025-05-19 14:38:20 +01:00
You are running out of Device Memory.
2024-09-18 08:30:31 +08:00
|Reason|Solution|
|-|-|
2025-05-19 14:38:20 +01:00
| The default context is too big. It leads to excessive memory usage.|Set ` -c 8192` or a smaller value.|
| The model is too big and requires more memory than what is available.|Choose a smaller model or change to a smaller quantization, like Q5 -> Q4;<br>Alternatively, use more than one device to load model.|
2024-08-11 16:37:43 +08:00
2025-11-29 20:59:44 +08:00
- ` ggml_backend_sycl_buffer_type_alloc_buffer: can't allocate 5000000000 Bytes of memory on device`
You need to enable to support 4GB memory malloc by:
` ``
export UR_L0_ENABLE_RELAXED_ALLOCATION_LIMITS=1
set UR_L0_ENABLE_RELAXED_ALLOCATION_LIMITS=1
` ``
2024-03-28 16:01:47 +00:00
### **GitHub contribution**:
2025-05-19 14:38:20 +01:00
Please add the ` SYCL :` prefix/tag in issues/PRs titles to help the SYCL contributors to check/address them without delay.
2024-02-02 15:53:27 +08:00
2024-04-12 10:52:36 +02:00
## TODO
2024-01-28 21:26:23 +05:30
2025-05-19 14:38:20 +01:00
- Review ZES_ENABLE_SYSMAN: https://github.com/intel/compute-runtime/blob/master/programmers-guide/SYSMAN.md#support -and-limitations