Skip to content

Commit 890f1a2

Browse files
wine99zhaixuejun1993cavusmustafaMustafa CavusXuejun
authored
openvino: OV 2026.2, context-shift, Q5_1 support, gemma4 dense/embedding, and -fa off (#24503)
* Add interface is_model_splitted() to check the c-graph is splited or not * Infer and propagate dynamic-dimension indices for all tensors in the GGML graph in api compute_model_outputs() * Only do this for fallback sub graph * Move dynamic dims compute in graph missmatch * ggml-openvino: fix tensor data handling for PERMUTE/VIEW ops in split models * ggml-openvino:add comments * ggml-openvino: override VIEW op_case to 0 for split model inputs * openvino backend: Handle unsupported VIEW shape-mismatch in OpenVINO backend * Enable additional mul_mat tests and add tensor data saving function (#81) * ggml-openvino: fix CONT/TRANSPOSE mapping and improve dynamic-dimension handling * OpenVINO: add NORM/TANH support and rework SOFT_MAX translation * ggml-openvino: extend VIEW handling * Enable -fa off (#118) * Enable --context-shift * Fix llm param compute error for normal softmax not the softmax in attention * OpenVINO backend: fix error for attention size compute in llm param * use tensor->extra in infer_request i/o * OpenVINO backend: refacter the compute_llm_params() func add get_attention_pattern_case to easy extand * OpenVINO backend: clean unused code * 1to1 match op update (#146) * added translate_1to1_match_1_input function and updated gelu and tanh translations * Remove unused translation function calls --------- Co-authored-by: Mustafa Cavus <mustafacavus@intel.com> * initial gemma4 support * removed hardcoded names for kv cache slicing * OpenVINO backend: Add new attention pattern for llm parameters compute * flash attn Q shape static conversion * Remove slice in permute translation when n_seq is 1 * return optional in extract_layer_from_name * OpenVINO backend: refactor VIEW related operation (#148) * OpenVINO backend: refactor VIEW related operation * Enable VIEW handling in following ops * OpenVINO backend does not support GGML_OP_NORM & GGML_OP_L2_NORM with VIEW input accuracy issue from OpenVINO * OpenVINO backend: Add ops l2_norm & pad * OpenVINO backend does not support CPY with non-contiguous data or mismatched types * add op SSM_CONV GATED_DELTA_NET * OpenVINO backend: fix error for bf16 in OV gpu plugin * reverted static Q input shape for attention layer * OpenVINO backend: remove hardcode name inp_tokens, which ignore some leaf case * Disable remote tensor due to bug in ov gpu * Disable n_token > 1 GATED_DELTA_NET on gpu * OpenVINO backend: fix the view op dynamic handling issue in gemma4 & enable view + get_row * OpenVINO backend: clean code * OpenVINO backend: enable view + norm/rms_norm * OpenVINO backend: concat op * OpenVINO backend: argsort op * OpenVINO backend: enable unary + view & GGML_UNARY_OP_SOFTPLUS * Fix issue for test-backend-ops in TOPK_MOE, which compare VIEW ops result, VIEW node in OpenVINO no need compare, the whole graph result is correct * OpenVINO backend: enable sum_rows * OpenVINO backend: enable clamp * OpenVINO backend: enable DIV * OpenVINO backend: enable GGML_OP_MUL_MAT_ID * OpenVINO backend: disable MUL_MAT_ID_FUSION case with large mem needed * OpenVINO backend: Disable GGML_OP_ARGSORT, cause test_backend-ops failed * OpenVINO backend: fix issue in mul_mat_id * OpenVINO backend: Disable DIV with broadcast on GPU * OpenVINO backend: update DIV * use ov internal op GatedDeltaNet * OpenVINO backend: enable llama erch test qwen3next * OpenVINO backend: enable RMS_NORM + VIEW & remove op_case 2 for rope * OpenVINO backend: fix error * suggested changes, need review * suggested changes, need review * OpenVINO backend: clean unused code & fix build warning * OpenVINO backend: enable minicpm3 for arch test * Disable GDN op (#177) * disable gated_delta_net * update stateful_kv_size correctly in mismatch case * OpenVINO backend: enable arch test for qwen3vl * OpenVINO backend: enable cohere2 for arch test * OpenVINO backend: enable t5 for arch test * OpenVINO backend: enable jamba for arch test * OpenVINO backend: remove warning for tmp * OpenVINO backend: enable kimi-linear for arch test * Remove unused * Fix gpt-oss accuracy issue * OpenVINO backend: enable arctic for arch test * OpenVINO backend: enable grok for arch test * Gemma4 initial npu support (#179) * Initiall gemma4 npu support * temp. fix for gemma4 accuracy bug on npu * Remove hardcoded names for npu-fold handling * revert static n tokens for cont translation as it is not needed * removed unused variable * ggml-openvino: add GGML_OPENVINO_ENABLE_CACHE env var to control decoder cache. Add environment variable GGML_OPENVINO_ENABLE_CACHE (default: YES). When set to NO, the decoder_cache is bypassed and models are rebuilt from the cgraph on every inference call in both dynamic and static compute paths. This is useful for debugging and verifying correctness without caching interference. * Revert "Gemma4 initial npu support (#179)" This reverts commit 0d29a9c. * OpenVINO backend: disable debug log print * Update TBB discovery. Delegated to OpenVINOs own config. * OpenVINO backend: GGML_OPENVINO_ENABLE_CACHE YES -> 1 * OpenVINO backend: fallback FLASH_ATTN_EXT in gemma3n to CPU backend * Add raw ov infer profiling metric * Add OV raw infer time metric to static compute path Co-authored-by: virajwad <84867530+virajwad@users.noreply.github.com> * Modify precision of static profiling * update to OV 2026.2, add OV windows CI * fix editorconfig-checks * Initiall gemma4 npu support * temp. fix for gemma4 accuracy bug on npu * Remove hardcoded names for npu-fold handling * revert static n tokens for cont translation as it is not needed * removed unused variable * test-llama-archs fix * Fix gemma4 flash_attn fallback * support im2col * fix code style * disable add_rope_sin_cos optimization * stateless boradcast and rope optimizations * Enable manual gqa attn by default for stateless gpu * manual gqa: fixed static batch * gemma4 llama-bench ctx update fix * Update OV win CI * stateful rope fusion temp. fix * OpenVINO backend: Conslolidate supported ops * Exclude unsupported GGML_OP_SUB cases * Exclude unsupported TOPK_MOE cases * OpenVINO Backend: MUL_MAT enhancements * Update OV CI * support f16 mask input for npu * Make GGML_OPENVINO_* env vars usage uniform Standardize all GGML_OPENVINO_* env flags: positive integers >0 to enable. Unset, empty, =0, or non-numeric values to disable. This fixes cases where text values or empty strings enabled features. * OpenVINO backend: Enhance envvar handling * more cleanup * move ggml_openvino_env_flag to appropriate place * OpenVINO backend: add REPEAT translator, Q5_1 weights, and GLU view-input fix * ggml-openvino: fix -Werror=cast-qual in extract_q5_1_data * Update openvino.Dockerfile Use BuildKit cache mounts for faster Docker rebuilds. Use apt instead of dpkg, remove unused .ddeb downloads, add DLLAMA_BUILD_TESTS=OFF. * ggml-openvino: centralize env var access via *getenv_str/getenv_int helpers Replace getenv and legacy flags with _str and _int helpers.Minor cleanup, doc updates. * OpenVINO backend: Enable GGML_OP_ADD_ID * Uptade openvino backend clamg-format * clang-format * Update OPENVINO.md (#211) * OpenVINO backend: fix accuracy issue for op CONCAT with i64 precision * Remove strict concurrency for gpu-openvino-low-perf * Update openvino CI keynames; add ccache-clear * Apply suggestions from code review Co-authored-by: Sigbjørn Skjæret <1629204+CISC@users.noreply.github.com> * Fix formatting --------- Co-authored-by: Xuejun Zhai <Xuejun.Zhai@intel.com> Co-authored-by: Mustafa Cavus <mustafa.cavus@intel.com> Co-authored-by: Mustafa Cavus <mustafacavus@intel.com> Co-authored-by: Xuejun <XuejunZhai@intel.com> Co-authored-by: Wang Yang <yang4.wang@intel.com> Co-authored-by: Ravi Panchumarthy <ravi.panchumarthy@intel.com> Co-authored-by: virajwad <84867530+virajwad@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Mostafa Faheem <mostafaaafaheem@gmail.com> Co-authored-by: Sigbjørn Skjæret <1629204+CISC@users.noreply.github.com>
1 parent 58728bd commit 890f1a2

62 files changed

Lines changed: 5272 additions & 901 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.devops/openvino.Dockerfile

Lines changed: 63 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
ARG OPENVINO_VERSION_MAJOR=2026.0
2-
ARG OPENVINO_VERSION_FULL=2026.0.0.20965.c6d6a13a886
1+
ARG OPENVINO_VERSION_MAJOR=2026.2
2+
ARG OPENVINO_VERSION_FULL=2026.2.0.21903.52ddc073857
33
ARG UBUNTU_VERSION=24.04
44

55
# Intel GPU driver versions. https://github.com/intel/compute-runtime/releases
6-
ARG IGC_VERSION=v2.30.1
7-
ARG IGC_VERSION_FULL=2_2.30.1+20950
8-
ARG COMPUTE_RUNTIME_VERSION=26.09.37435.1
9-
ARG COMPUTE_RUNTIME_VERSION_FULL=26.09.37435.1-0
10-
ARG IGDGMM_VERSION=22.9.0
6+
ARG IGC_VERSION=v2.34.4
7+
ARG IGC_VERSION_FULL=2_2.34.4+21428
8+
ARG COMPUTE_RUNTIME_VERSION=26.18.38308.1
9+
ARG COMPUTE_RUNTIME_VERSION_FULL=26.18.38308.1-0
10+
ARG IGDGMM_VERSION=22.10.0
1111

1212
# Intel NPU driver versions. https://github.com/intel/linux-npu-driver/releases
13-
ARG NPU_DRIVER_VERSION=v1.32.0
14-
ARG NPU_DRIVER_FULL=v1.32.0.20260402-23905121947
13+
ARG NPU_DRIVER_VERSION=v1.33.0
14+
ARG NPU_DRIVER_FULL=v1.33.0.20260529-26625960453
1515
ARG LIBZE1_VERSION=1.27.0-1~24.04~ppa2
1616

1717
# Optional proxy build arguments
@@ -46,13 +46,18 @@ RUN apt-get update && \
4646
intel-opencl-icd && \
4747
rm -rf /var/lib/apt/lists/*
4848

49-
# Install OpenVINO for Ubuntu 24.04
49+
# OpenVINO toolkit and GPU/NPU drivers are cached via BuildKit cache mounts to avoid re-downloading on rebuilds.
50+
# Install OpenVINO for Ubuntu 24.04.
5051
ARG OPENVINO_VERSION_MAJOR
5152
ARG OPENVINO_VERSION_FULL
52-
RUN mkdir -p /opt/intel && \
53-
wget https://storage.openvinotoolkit.org/repositories/openvino/packages/${OPENVINO_VERSION_MAJOR}/linux/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
54-
tar -xf openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
55-
mv openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64 /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
53+
RUN --mount=type=cache,target=/var/cache/openvino,sharing=locked \
54+
mkdir -p /opt/intel && \
55+
TGZ=/var/cache/openvino/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz && \
56+
if [ ! -f "$TGZ" ]; then \
57+
wget -O "$TGZ" https://storage.openvinotoolkit.org/repositories/openvino/packages/${OPENVINO_VERSION_MAJOR}/linux/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64.tgz; \
58+
fi && \
59+
tar -xf "$TGZ" -C /opt/intel/ && \
60+
mv /opt/intel/openvino_toolkit_ubuntu24_${OPENVINO_VERSION_FULL}_x86_64 /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
5661
cd /opt/intel/openvino_${OPENVINO_VERSION_MAJOR} && \
5762
echo "Y" | ./install_dependencies/install_openvino_dependencies.sh && \
5863
cd - && \
@@ -68,14 +73,14 @@ COPY . .
6873
RUN bash -c "source ${OpenVINO_DIR}/setupvars.sh && \
6974
cmake -B build/ReleaseOV -G Ninja \
7075
-DCMAKE_BUILD_TYPE=Release \
76+
-DLLAMA_BUILD_TESTS=OFF \
7177
-DGGML_OPENVINO=ON && \
72-
cmake --build build/ReleaseOV -j$(nproc)"
78+
cmake --build build/ReleaseOV --parallel "
7379

74-
# Copy all necessary libraries
80+
# Copy all necessary libraries (build outputs + OpenVINO runtime libs)
7581
RUN mkdir -p /app/lib && \
76-
find build/ReleaseOV -name '*.so*' -exec cp {} /app/lib \; && \
77-
find ${OpenVINO_DIR}/runtime/lib/intel64 -name '*.so*' -exec cp -P {} /app/lib \; 2>/dev/null || \
78-
find ${OpenVINO_DIR}/lib/intel64 -name '*.so*' -exec cp -P {} /app/lib \;
82+
find build/ReleaseOV -name '*.so*' -exec cp -P {} /app/lib \; && \
83+
find "${OpenVINO_DIR}/runtime/lib/intel64" -name '*.so*' -exec cp -P {} /app/lib \;
7984

8085
# Create runtime directories and copy binaries
8186
RUN mkdir -p /app/full \
@@ -120,33 +125,41 @@ ARG IGC_VERSION_FULL
120125
ARG COMPUTE_RUNTIME_VERSION
121126
ARG COMPUTE_RUNTIME_VERSION_FULL
122127
ARG IGDGMM_VERSION
123-
RUN mkdir /tmp/neo/ && cd /tmp/neo/ \
124-
&& wget https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-core-${IGC_VERSION_FULL}_amd64.deb \
125-
&& wget https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-opencl-${IGC_VERSION_FULL}_amd64.deb \
126-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
127-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
128-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
129-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
130-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libigdgmm12_${IGDGMM_VERSION}_amd64.deb \
131-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1-dbgsym_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.ddeb \
132-
&& wget https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
133-
&& dpkg --install *.deb \
134-
&& rm -rf /tmp/neo/
128+
RUN --mount=type=cache,target=/var/cache/intel-gpu,sharing=locked \
129+
set -eux; \
130+
cd /var/cache/intel-gpu; \
131+
for url in \
132+
https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-core-${IGC_VERSION_FULL}_amd64.deb \
133+
https://github.com/intel/intel-graphics-compiler/releases/download/${IGC_VERSION}/intel-igc-opencl-${IGC_VERSION_FULL}_amd64.deb \
134+
https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-ocloc_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
135+
https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/intel-opencl-icd_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb \
136+
https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libigdgmm12_${IGDGMM_VERSION}_amd64.deb \
137+
https://github.com/intel/compute-runtime/releases/download/${COMPUTE_RUNTIME_VERSION}/libze-intel-gpu1_${COMPUTE_RUNTIME_VERSION_FULL}_amd64.deb ; do \
138+
f=$(basename "$url"); \
139+
[ -f "$f" ] || wget -q -O "$f" "$url"; \
140+
done; \
141+
apt-get update; \
142+
apt-get install -y --no-install-recommends ./*.deb; \
143+
rm -rf /var/lib/apt/lists/*
135144

136145
# Install NPU drivers
137146
ARG NPU_DRIVER_VERSION
138147
ARG NPU_DRIVER_FULL
139148
ARG LIBZE1_VERSION
140-
RUN mkdir /tmp/npu/ && cd /tmp/npu/ \
141-
&& wget https://github.com/intel/linux-npu-driver/releases/download/${NPU_DRIVER_VERSION}/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz \
142-
&& tar -xf linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz \
143-
&& dpkg --install *.deb \
144-
&& rm -rf /tmp/npu/
145-
146-
RUN cd /tmp \
147-
&& wget https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb \
148-
&& dpkg --install libze1_${LIBZE1_VERSION}_amd64.deb \
149-
&& rm libze1_${LIBZE1_VERSION}_amd64.deb
149+
RUN --mount=type=cache,target=/var/cache/intel-npu,sharing=locked \
150+
set -eux; \
151+
TGZ=/var/cache/intel-npu/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz; \
152+
if [ ! -f "$TGZ" ]; then \
153+
wget -q -O "$TGZ" https://github.com/intel/linux-npu-driver/releases/download/${NPU_DRIVER_VERSION}/linux-npu-driver-${NPU_DRIVER_FULL}-ubuntu2404.tar.gz; \
154+
fi; \
155+
DEB=/var/cache/intel-npu/libze1_${LIBZE1_VERSION}_amd64.deb; \
156+
if [ ! -f "$DEB" ]; then \
157+
wget -q -O "$DEB" https://snapshot.ppa.launchpadcontent.net/kobuk-team/intel-graphics/ubuntu/20260324T100000Z/pool/main/l/level-zero-loader/libze1_${LIBZE1_VERSION}_amd64.deb; \
158+
fi; \
159+
mkdir /tmp/npu/ && cd /tmp/npu/ && tar -xf "$TGZ" && cp "$DEB" .; \
160+
apt-get update; \
161+
apt-get install -y --no-install-recommends ./*.deb; \
162+
rm -rf /tmp/npu/ /var/lib/apt/lists/*
150163

151164
COPY --from=build /app/lib/ /app/
152165

@@ -166,22 +179,26 @@ RUN apt-get update && \
166179
python3 \
167180
python3-venv \
168181
python3-pip && \
169-
python3 -m venv /ov-venv && \
170-
/ov-venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel && \
171-
/ov-venv/bin/pip install --no-cache-dir -r requirements.txt && \
182+
python3 -m venv /openvino-venv && \
183+
/openvino-venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel && \
184+
/openvino-venv/bin/pip install --no-cache-dir -r requirements.txt && \
172185
apt-get autoremove -y && \
173186
apt-get clean && \
174187
rm -rf /tmp/* /var/tmp/* && \
175188
find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete && \
176189
find /var/cache -type f -delete
177190

178-
ENTRYPOINT ["/bin/bash", "-c", "source /ov-venv/bin/activate && exec /app/tools.sh \"$@\"", "--"]
191+
# Activate the venv
192+
ENV VIRTUAL_ENV=/openvino-venv \
193+
PATH=/openvino-venv/bin:$PATH
194+
195+
ENTRYPOINT ["/app/tools.sh"]
179196

180197

181198
### Light, CLI only
182199
FROM base AS light
183200

184-
COPY --from=build /app/full/llama-cli /app/
201+
COPY --from=build /app/full/llama-cli /app/full/llama-completion /app/
185202

186203
WORKDIR /app
187204

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: "Windows - Setup OpenVINO Toolkit"
2+
description: "Setup OpenVINO Toolkit for Windows"
3+
inputs:
4+
path:
5+
description: "Installation path"
6+
required: true
7+
version_major:
8+
description: "OpenVINO major version (e.g., 2026.2)"
9+
required: true
10+
version_full:
11+
description: "OpenVINO full version"
12+
required: true
13+
14+
runs:
15+
using: "composite"
16+
steps:
17+
- name: Download and extract OpenVINO Runtime
18+
shell: powershell
19+
run: |
20+
$url = "https://storage.openvinotoolkit.org/repositories/openvino/packages/${{ inputs.version_major }}/windows/openvino_toolkit_windows_${{ inputs.version_full }}_x86_64.zip"
21+
$out = "openvino.zip"
22+
Invoke-WebRequest -Uri $url -OutFile $out
23+
Expand-Archive -Path $out -DestinationPath ${{ inputs.path }} -Force
24+
Remove-Item $out

.github/workflows/build-cache.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ jobs:
6868

6969
env:
7070
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
71-
OPENVINO_VERSION_MAJOR: "2026.0"
72-
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
71+
OPENVINO_VERSION_MAJOR: "2026.2"
72+
OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857"
7373

7474
steps:
7575
- name: Clone
@@ -91,6 +91,34 @@ jobs:
9191
version_major: ${{ env.OPENVINO_VERSION_MAJOR }}
9292
version_full: ${{ env.OPENVINO_VERSION_FULL }}
9393

94+
windows-2022-openvino-cache:
95+
runs-on: windows-2022
96+
97+
env:
98+
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
99+
OPENVINO_VERSION_MAJOR: "2026.2"
100+
OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857"
101+
102+
steps:
103+
- name: Clone
104+
id: checkout
105+
uses: actions/checkout@v6
106+
107+
- name: Setup Cache
108+
uses: actions/cache@v5
109+
id: cache-openvino
110+
with:
111+
path: ./openvino_toolkit
112+
key: cache-gha-openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
113+
114+
- name: Setup OpenVINO Toolkit
115+
if: steps.cache-openvino.outputs.cache-hit != 'true'
116+
uses: ./.github/actions/windows-setup-openvino
117+
with:
118+
path: ./openvino_toolkit
119+
version_major: ${{ env.OPENVINO_VERSION_MAJOR }}
120+
version_full: ${{ env.OPENVINO_VERSION_FULL }}
121+
94122
windows-2022-rocm-cache:
95123
runs-on: windows-2022
96124

.github/workflows/build-openvino.yml

Lines changed: 81 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,10 @@ jobs:
3737
ubuntu-24-openvino:
3838
runs-on: [self-hosted, Linux, Intel, OpenVINO]
3939

40-
concurrency:
41-
group: openvino-gpu-${{ github.head_ref || github.ref }}
42-
cancel-in-progress: false
43-
4440
env:
4541
# Sync versions in build-openvino.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
46-
OPENVINO_VERSION_MAJOR: "2026.0"
47-
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
42+
OPENVINO_VERSION_MAJOR: "2026.2"
43+
OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857"
4844

4945
steps:
5046
- name: Clone
@@ -78,7 +74,7 @@ jobs:
7874
cmake -B build/ReleaseOV -G Ninja \
7975
-DCMAKE_BUILD_TYPE=Release \
8076
-DGGML_OPENVINO=ON
81-
time cmake --build build/ReleaseOV --config Release -j $(nproc)
77+
time cmake --build build/ReleaseOV --config Release --parallel
8278
8379
- name: Test (CPU)
8480
id: cmake_test_cpu
@@ -93,4 +89,81 @@ jobs:
9389
run: |
9490
cd ${{ github.workspace }}
9591
export GGML_OPENVINO_DEVICE=GPU
96-
ctest --test-dir build/ReleaseOV -L main -E "test-llama-archs" --verbose --timeout 2000
92+
ctest --test-dir build/ReleaseOV -L main -E "test-llama-archs" --verbose --timeout 3000
93+
94+
openvino-windows-2022:
95+
runs-on: windows-2022
96+
97+
env:
98+
# Sync versions in build-openvino.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
99+
OPENVINO_VERSION_MAJOR: "2026.2"
100+
OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857"
101+
102+
steps:
103+
- name: Clone
104+
id: checkout
105+
uses: actions/checkout@v6
106+
107+
- name: ccache
108+
uses: ggml-org/ccache-action@v1.2.21
109+
with:
110+
key: openvino-windows-2022
111+
variant: ccache
112+
evict-old-files: 1d
113+
save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
114+
115+
- name: Setup Cache
116+
uses: actions/cache@v5
117+
id: cache-openvino
118+
with:
119+
path: ./openvino_toolkit
120+
key: cache-gha-openvino-toolkit-v${{ env.OPENVINO_VERSION_FULL }}-${{ runner.os }}
121+
122+
- name: Setup OpenVINO Toolkit
123+
if: steps.cache-openvino.outputs.cache-hit != 'true'
124+
uses: ./.github/actions/windows-setup-openvino
125+
with:
126+
path: ./openvino_toolkit
127+
version_major: ${{ env.OPENVINO_VERSION_MAJOR }}
128+
version_full: ${{ env.OPENVINO_VERSION_FULL }}
129+
130+
- name: Install OpenCL using vcpkg
131+
shell: powershell
132+
run: |
133+
git clone https://github.com/microsoft/vcpkg C:\vcpkg
134+
C:\vcpkg\bootstrap-vcpkg.bat
135+
C:\vcpkg\vcpkg install opencl
136+
137+
- name: Build
138+
id: cmake_build
139+
shell: cmd
140+
run: |
141+
REM Find extracted OpenVINO folder dynamically
142+
for /d %%i in (openvino_toolkit\*) do set OPENVINO_ROOT=%%i
143+
144+
if not exist "%OPENVINO_ROOT%\runtime\cmake\OpenVINOConfig.cmake" (
145+
echo ERROR: OpenVINOConfig.cmake not found
146+
exit /b 1
147+
)
148+
149+
call "%OPENVINO_ROOT%\setupvars.bat"
150+
151+
cmake -B build\ReleaseOV -G "Visual Studio 17 2022" ^
152+
-A x64 ^
153+
-DCMAKE_BUILD_TYPE=Release ^
154+
-DGGML_OPENVINO=ON ^
155+
-DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
156+
157+
cmake --build build\ReleaseOV --config Release -- /m
158+
159+
- name: Test (CPU)
160+
id: cmake_test_cpu
161+
shell: cmd
162+
# TODO: fix and re-enable the `test-llama-archs` test below
163+
run: |
164+
REM Find extracted OpenVINO folder dynamically
165+
for /d %%i in (openvino_toolkit\*) do set OPENVINO_ROOT=%%i
166+
call "%OPENVINO_ROOT%\setupvars.bat"
167+
168+
cd build
169+
ctest --test-dir ReleaseOV -L main -E "test-llama-archs" -C Release --verbose --timeout 3000

.github/workflows/build-self-hosted.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,14 +264,10 @@ jobs:
264264
gpu-openvino-low-perf:
265265
runs-on: [self-hosted, Linux, Intel, OpenVINO]
266266

267-
concurrency:
268-
group: openvino-gpu-${{ github.head_ref || github.ref }}
269-
cancel-in-progress: false
270-
271267
env:
272268
# Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile
273-
OPENVINO_VERSION_MAJOR: "2026.0"
274-
OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886"
269+
OPENVINO_VERSION_MAJOR: "2026.2"
270+
OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857"
275271

276272
steps:
277273
- name: Clone

0 commit comments

Comments
 (0)