Add Q2_0 quantization: type definition and CPU backend (#24448) #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI (sycl) | |
| on: | |
| workflow_dispatch: # allows manual triggering | |
| push: | |
| branches: | |
| - master | |
| paths: [ | |
| '.github/workflows/build-sycl.yml', | |
| '**/CMakeLists.txt', | |
| '**/.cmake', | |
| '**/*.h', | |
| '**/*.hpp', | |
| '**/*.c', | |
| '**/*.cpp' | |
| ] | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: [ | |
| '.github/workflows/build-sycl.yml', | |
| 'ggml/src/ggml-sycl/**' | |
| ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| GGML_NLOOP: 3 | |
| GGML_N_THREADS: 1 | |
| LLAMA_ARG_LOG_COLORS: 1 | |
| LLAMA_ARG_LOG_PREFIX: 1 | |
| LLAMA_ARG_LOG_TIMESTAMPS: 1 | |
| jobs: | |
| ubuntu-24-sycl: | |
| strategy: | |
| matrix: | |
| build: [fp32, fp16] | |
| include: | |
| - build: fp32 | |
| fp16: OFF | |
| - build: fp16 | |
| fp16: ON | |
| runs-on: ubuntu-24.04 | |
| env: | |
| ONEAPI_ROOT: /opt/intel/oneapi/ | |
| ONEAPI_INSTALLER_VERSION: "2025.3.3" | |
| LEVEL_ZERO_VERSION: "1.28.2" | |
| LEVEL_ZERO_UBUNTU_VERSION: "u24.04" | |
| continue-on-error: true | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: Download & Install oneAPI | |
| shell: bash | |
| run: | | |
| cd /tmp | |
| wget https://registrationcenter-download.intel.com/akdlm/IRC_NAS/56f7923a-adb8-43f3-8b02-2b60fcac8cab/intel-deep-learning-essentials-2025.3.3.16_offline.sh -O intel-deep-learning-essentials_offline.sh | |
| sudo bash intel-deep-learning-essentials_offline.sh -s -a --silent --eula accept | |
| - name: Install Level Zero SDK | |
| shell: bash | |
| run: | | |
| cd /tmp | |
| wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero.deb | |
| wget -q "https://github.com/oneapi-src/level-zero/releases/download/v${LEVEL_ZERO_VERSION}/level-zero-devel_${LEVEL_ZERO_VERSION}%2B${LEVEL_ZERO_UBUNTU_VERSION}_amd64.deb" -O level-zero-devel.deb | |
| sudo apt-get install -y ./level-zero.deb ./level-zero-devel.deb | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: sycl-ubuntu-24-${{ matrix.build }} | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| source /opt/intel/oneapi/setvars.sh | |
| cmake -B build \ | |
| -G "Ninja" \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DGGML_SYCL=ON \ | |
| -DCMAKE_C_COMPILER=icx \ | |
| -DCMAKE_CXX_COMPILER=icpx \ | |
| -DLLAMA_OPENSSL=OFF \ | |
| -DGGML_NATIVE=OFF \ | |
| -DGGML_SYCL_F16=${{ matrix.fp16 }} | |
| time cmake --build build --config Release -j $(nproc) | |
| windows-latest-sycl: | |
| runs-on: windows-2022 | |
| defaults: | |
| run: | |
| shell: bash | |
| env: | |
| WINDOWS_BASEKIT_URL: https://registrationcenter-download.intel.com/akdlm/IRC_NAS/b60765d1-2b85-4e85-86b6-cb0e9563a699/intel-deep-learning-essentials-2025.3.3.18_offline.exe | |
| WINDOWS_DPCPP_MKL: intel.oneapi.win.cpp-dpcpp-common:intel.oneapi.win.mkl.devel:intel.oneapi.win.dnnl:intel.oneapi.win.tbb.devel | |
| LEVEL_ZERO_SDK_URL: https://github.com/oneapi-src/level-zero/releases/download/v1.28.2/level-zero-win-sdk-1.28.2.zip | |
| ONEAPI_ROOT: "C:/Program Files (x86)/Intel/oneAPI" | |
| ONEAPI_INSTALLER_VERSION: "2025.3.3" | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: Download & Install oneAPI | |
| shell: bash | |
| run: | | |
| scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL | |
| - name: Install Level Zero SDK | |
| shell: pwsh | |
| run: | | |
| Invoke-WebRequest -Uri "${{ env.LEVEL_ZERO_SDK_URL }}" -OutFile "level-zero-win-sdk.zip" | |
| Expand-Archive -Path "level-zero-win-sdk.zip" -DestinationPath "C:/level-zero-sdk" -Force | |
| "LEVEL_ZERO_V1_SDK_PATH=C:/level-zero-sdk" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: sycl-windows-latest | |
| variant: ccache | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| # TODO: add ssl support ; we will also need to modify win-build-sycl.bat to accept user-specified args | |
| - name: Build | |
| id: cmake_build | |
| run: examples/sycl/win-build-sycl.bat |