diff --git a/.devops/openvino.Dockerfile b/.devops/openvino.Dockerfile index 1266713f3788..26915b53ab63 100644 --- a/.devops/openvino.Dockerfile +++ b/.devops/openvino.Dockerfile @@ -1,17 +1,17 @@ -ARG OPENVINO_VERSION_MAJOR=2026.0 -ARG OPENVINO_VERSION_FULL=2026.0.0.20965.c6d6a13a886 +ARG OPENVINO_VERSION_MAJOR=2026.2 +ARG OPENVINO_VERSION_FULL=2026.2.0.21903.52ddc073857 ARG UBUNTU_VERSION=24.04 # Intel GPU driver versions. https://github.com/intel/compute-runtime/releases -ARG IGC_VERSION=v2.30.1 -ARG IGC_VERSION_FULL=2_2.30.1+20950 -ARG COMPUTE_RUNTIME_VERSION=26.09.37435.1 -ARG COMPUTE_RUNTIME_VERSION_FULL=26.09.37435.1-0 -ARG IGDGMM_VERSION=22.9.0 +ARG IGC_VERSION=v2.34.4 +ARG IGC_VERSION_FULL=2_2.34.4+21428 +ARG COMPUTE_RUNTIME_VERSION=26.18.38308.1 +ARG COMPUTE_RUNTIME_VERSION_FULL=26.18.38308.1-0 +ARG IGDGMM_VERSION=22.10.0 # Intel NPU driver versions. https://github.com/intel/linux-npu-driver/releases -ARG NPU_DRIVER_VERSION=v1.32.0 -ARG NPU_DRIVER_FULL=v1.32.0.20260402-23905121947 +ARG NPU_DRIVER_VERSION=v1.32.1 +ARG NPU_DRIVER_FULL=v1.32.1.20260422-24767473183 ARG LIBZE1_VERSION=1.27.0-1~24.04~ppa2 # Optional proxy build arguments diff --git a/.github/workflows/build-cache.yml b/.github/workflows/build-cache.yml index bc0a92c7fcf7..1b6d9ed9c2ac 100644 --- a/.github/workflows/build-cache.yml +++ b/.github/workflows/build-cache.yml @@ -68,8 +68,8 @@ jobs: env: # Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile - OPENVINO_VERSION_MAJOR: "2026.0" - OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886" + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" steps: - name: Clone diff --git a/.github/workflows/build-openvino.yml b/.github/workflows/build-openvino.yml index f7177f6be378..560b58753a8e 100644 --- a/.github/workflows/build-openvino.yml +++ b/.github/workflows/build-openvino.yml @@ -55,8 +55,8 @@ jobs: env: # Sync versions in build-openvino.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile - OPENVINO_VERSION_MAJOR: "2026.0" - OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886" + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" steps: - name: Clone @@ -117,4 +117,80 @@ jobs: if [ "${{ matrix.openvino_device }}" = "GPU" ]; then export GGML_OPENVINO_DEVICE=GPU fi - ctest --test-dir build/ReleaseOV -L main -E "test-llama-archs" --verbose --timeout 2000 + ctest --test-dir build/ReleaseOV -L main -E "test-llama-archs" --verbose --timeout 3000 + + windows-2022-openvino: + runs-on: windows-2022 + + env: + # Sync versions in build-openvino.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" + + steps: + - name: Clone + id: checkout + uses: actions/checkout@v6 + + - name: ccache + uses: ggml-org/ccache-action@v1.2.21 + with: + key: windows-2022-openvino + variant: ccache + evict-old-files: 1d + save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + + - name: Download and extract OpenVINO Runtime + shell: powershell + run: | + $url = "https://storage.openvinotoolkit.org/repositories/openvino/packages/${{ env.OPENVINO_VERSION_MAJOR }}/windows/openvino_toolkit_windows_${{ env.OPENVINO_VERSION_FULL }}_x86_64.zip" + $out = "openvino.zip" + Invoke-WebRequest -Uri $url -OutFile $out + Expand-Archive -Path $out -DestinationPath openvino_toolkit -Force + Remove-Item $out + + - name: Install OpenCL using vcpkg + shell: powershell + run: | + git clone https://github.com/microsoft/vcpkg C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + C:\vcpkg\vcpkg install opencl + + - name: Build + id: cmake_build + shell: cmd + run: | + REM Find extracted OpenVINO folder dynamically + for /d %%i in (openvino_toolkit\*) do set OPENVINO_ROOT=%%i + + if not exist "%OPENVINO_ROOT%\runtime\cmake\OpenVINOConfig.cmake" ( + echo ERROR: OpenVINOConfig.cmake not found + exit /b 1 + ) + + REM Call OpenVINO setup script to automatically append DLLs to PATH + call "%OPENVINO_ROOT%\setupvars.bat" + + cmake -B build\ReleaseOV -G "Visual Studio 17 2022" ^ + -A x64 ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DGGML_OPENVINO=ON ^ + -DLLAMA_CURL=OFF ^ + -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake + + cmake --build build\ReleaseOV --config Release -- /m + + - name: Test + id: cmake_test + shell: cmd + # TODO: fix and re-enable the `test-llama-archs` test below + run: | + REM Find extracted OpenVINO folder dynamically + for /d %%i in (openvino_toolkit\*) do set OPENVINO_ROOT=%%i + + REM Call OpenVINO setup script to automatically append DLLs to PATH + call "%OPENVINO_ROOT%\setupvars.bat" + + REM Run the tests + cd build + ctest --test-dir ReleaseOV -L main -E "test-llama-archs" -C Release --verbose --timeout 3000 diff --git a/.github/workflows/build-self-hosted.yml b/.github/workflows/build-self-hosted.yml index 2851c45601fc..533fbaa31461 100644 --- a/.github/workflows/build-self-hosted.yml +++ b/.github/workflows/build-self-hosted.yml @@ -310,8 +310,8 @@ jobs: env: # Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile - OPENVINO_VERSION_MAJOR: "2026.0" - OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886" + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" steps: - name: Clone diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1880c155c85b..a448be399e86 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -347,8 +347,8 @@ jobs: env: # Sync versions in build.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile - OPENVINO_VERSION_MAJOR: "2026.0" - OPENVINO_VERSION_FULL: "2026.0.0.20965.c6d6a13a886" + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" steps: - name: Set OpenVINO version output @@ -426,6 +426,98 @@ jobs: path: llama-${{ steps.tag.outputs.name }}-bin-ubuntu-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.tar.gz name: llama-bin-ubuntu-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.tar.gz + windows-openvino: + + runs-on: windows-2022 + + outputs: + openvino_version: ${{ steps.openvino_version.outputs.value }} + + env: + # Sync versions in build-openvino.yml, build-self-hosted.yml, release.yml, build-cache.yml, .devops/openvino.Dockerfile + OPENVINO_VERSION_MAJOR: "2026.2" + OPENVINO_VERSION_FULL: "2026.2.0.21903.52ddc073857" + + steps: + - name: Set OpenVINO version output + id: openvino_version + run: echo "value=${{ env.OPENVINO_VERSION_MAJOR }}" >> $GITHUB_OUTPUT + + - name: Clone + id: checkout + uses: actions/checkout@v6 + + - name: Setup Node.js + uses: actions/setup-node@v6 + with: + node-version: "24" + cache: "npm" + cache-dependency-path: "tools/ui/package-lock.json" + + - name: ccache + uses: ggml-org/ccache-action@v1.2.21 + with: + key: windows-2022-openvino-release + variant: ccache + evict-old-files: 1d + + - name: Download and extract OpenVINO Runtime + shell: powershell + run: | + $url = "https://storage.openvinotoolkit.org/repositories/openvino/packages/${{ env.OPENVINO_VERSION_MAJOR }}/windows/openvino_toolkit_windows_${{ env.OPENVINO_VERSION_FULL }}_x86_64.zip" + $out = "openvino.zip" + Invoke-WebRequest -Uri $url -OutFile $out + Expand-Archive -Path $out -DestinationPath openvino_toolkit -Force + Remove-Item $out + + - name: Install OpenCL using vcpkg + shell: powershell + run: | + git clone https://github.com/microsoft/vcpkg C:\vcpkg + C:\vcpkg\bootstrap-vcpkg.bat + C:\vcpkg\vcpkg install opencl + + - name: Build + id: cmake_build + shell: cmd + run: | + REM Find extracted OpenVINO folder dynamically + for /d %%i in (openvino_toolkit\*) do set OPENVINO_ROOT=%%i + + if not exist "%OPENVINO_ROOT%\runtime\cmake\OpenVINOConfig.cmake" ( + echo ERROR: OpenVINOConfig.cmake not found + exit /b 1 + ) + + REM Call OpenVINO setup script to automatically append DLLs to PATH + call "%OPENVINO_ROOT%\setupvars.bat" + + cmake -B build\ReleaseOV -G "Visual Studio 17 2022" ^ + -A x64 ^ + -DCMAKE_BUILD_TYPE=Release ^ + -DGGML_OPENVINO=ON ^ + -DLLAMA_CURL=OFF ^ + -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake + + cmake --build build\ReleaseOV --config Release -- /m + + - name: Determine tag name + id: tag + uses: ./.github/actions/get-tag-name + + - name: Pack artifacts + id: pack_artifacts + shell: powershell + run: | + Copy-Item LICENSE .\build\ReleaseOV\bin\ + 7z a -snl llama-${{ steps.tag.outputs.name }}-bin-win-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.zip .\build\ReleaseOV\bin\* + + - name: Upload artifacts + uses: actions/upload-artifact@v6 + with: + path: llama-${{ steps.tag.outputs.name }}-bin-win-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.zip + name: llama-bin-win-openvino-${{ env.OPENVINO_VERSION_MAJOR }}-x64.zip + windows-cpu: runs-on: windows-2025 @@ -1249,6 +1341,7 @@ jobs: - windows-cuda - windows-sycl - windows-hip + - windows-openvino - ubuntu-22-rocm - ubuntu-cpu - ubuntu-vulkan @@ -1356,6 +1449,7 @@ jobs: - [Windows arm64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cpu-arm64.zip) - [Windows x64 (CUDA 12)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cuda-12.4-x64.zip) - [CUDA 12.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-12.4-x64.zip) - [Windows x64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-cuda-13.1-x64.zip) - [CUDA 13.1 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/cudart-llama-bin-win-cuda-13.1-x64.zip) + - [Windows x64 (OpenVINO)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-openvino-${{ needs.windows-openvino.outputs.openvino_version }}-x64.zip) - [Windows x64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-vulkan-x64.zip) - [Windows x64 (SYCL)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-sycl-x64.zip) - [Windows x64 (HIP)](https://github.com/ggml-org/llama.cpp/releases/download/${{ steps.tag.outputs.name }}/llama-${{ steps.tag.outputs.name }}-bin-win-hip-radeon-x64.zip) diff --git a/ggml/src/ggml-openvino/openvino/op/argsort.cpp b/ggml/src/ggml-openvino/openvino/op/argsort.cpp index f3026e0f85fc..d395aab1af31 100644 --- a/ggml/src/ggml-openvino/openvino/op/argsort.cpp +++ b/ggml/src/ggml-openvino/openvino/op/argsort.cpp @@ -49,4 +49,4 @@ OutputVector translate_argsort(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/clamp.cpp b/ggml/src/ggml-openvino/openvino/op/clamp.cpp index d4920f6f79e0..070ad33b7794 100644 --- a/ggml/src/ggml-openvino/openvino/op/clamp.cpp +++ b/ggml/src/ggml-openvino/openvino/op/clamp.cpp @@ -30,4 +30,4 @@ OutputVector translate_clamp(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/concat.cpp b/ggml/src/ggml-openvino/openvino/op/concat.cpp index c5502361c756..4d36a666b5e5 100644 --- a/ggml/src/ggml-openvino/openvino/op/concat.cpp +++ b/ggml/src/ggml-openvino/openvino/op/concat.cpp @@ -45,4 +45,4 @@ OutputVector translate_concat(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/div.cpp b/ggml/src/ggml-openvino/openvino/op/div.cpp index b3f17a80458e..787be2a7b892 100644 --- a/ggml/src/ggml-openvino/openvino/op/div.cpp +++ b/ggml/src/ggml-openvino/openvino/op/div.cpp @@ -145,4 +145,4 @@ OutputVector translate_div(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/l2_norm.cpp b/ggml/src/ggml-openvino/openvino/op/l2_norm.cpp index 04caccf4333f..4b8ed3b6c4a2 100644 --- a/ggml/src/ggml-openvino/openvino/op/l2_norm.cpp +++ b/ggml/src/ggml-openvino/openvino/op/l2_norm.cpp @@ -41,4 +41,4 @@ OutputVector translate_l2_norm(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/mul_mat_id.cpp b/ggml/src/ggml-openvino/openvino/op/mul_mat_id.cpp index e04364bc886a..ab65b69d490b 100644 --- a/ggml/src/ggml-openvino/openvino/op/mul_mat_id.cpp +++ b/ggml/src/ggml-openvino/openvino/op/mul_mat_id.cpp @@ -106,4 +106,4 @@ OutputVector translate_mul_mat_id(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/pad.cpp b/ggml/src/ggml-openvino/openvino/op/pad.cpp index f91fc5a4f1e8..9a62ab687fdb 100644 --- a/ggml/src/ggml-openvino/openvino/op/pad.cpp +++ b/ggml/src/ggml-openvino/openvino/op/pad.cpp @@ -91,4 +91,4 @@ OutputVector translate_pad(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/sum_rows.cpp b/ggml/src/ggml-openvino/openvino/op/sum_rows.cpp index 668fd6321646..d04e6443be95 100644 --- a/ggml/src/ggml-openvino/openvino/op/sum_rows.cpp +++ b/ggml/src/ggml-openvino/openvino/op/sum_rows.cpp @@ -24,4 +24,4 @@ OutputVector translate_sum_rows(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov diff --git a/ggml/src/ggml-openvino/openvino/op/unary_softplus.cpp b/ggml/src/ggml-openvino/openvino/op/unary_softplus.cpp index 68cb6ecbc843..756d9c33d736 100644 --- a/ggml/src/ggml-openvino/openvino/op/unary_softplus.cpp +++ b/ggml/src/ggml-openvino/openvino/op/unary_softplus.cpp @@ -35,4 +35,4 @@ OutputVector translate_unary_softplus(const NodeContext & context) { } // namespace op } // namespace ggml } // namespace frontend -} // namespace ov \ No newline at end of file +} // namespace ov