name: CI (sycl) on: workflow_dispatch: # allows manual triggering push: branches: - master paths: ['.github/workflows/build-sycl.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.mk', '**/*.cmake', '**/*.in', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.cl'] pull_request: types: [opened, synchronize, reopened] paths-ignore: - 'bindings/ruby/**' # handled by bindings-ruby.yml - 'bindings/go/**' # handled by bindings-go.yml - 'examples/addon.node/**' # handled by examples.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} cancel-in-progress: true jobs: ubuntu-22-cmake-sycl: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: dwhisper_sycl: [ON] dcmake_c_compiler: [icx] dcmake_cxx_compiler: [icpx] arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le] continue-on-error: true steps: - name: Clone uses: actions/checkout@v6 - name: add oneAPI to apt shell: bash run: | cd /tmp wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" - name: install oneAPI dpcpp compiler shell: bash run: | sudo apt update sudo apt install intel-oneapi-compiler-dpcpp-cpp - name: install oneAPI MKL library shell: bash run: | sudo apt install intel-oneapi-mkl-devel - name: ccache uses: ggml-org/ccache-action@v1.2.21 with: key: sycl-${{ matrix.arch }} evict-old-files: 1d save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Build id: cmake_build env: CCACHE_SLOPPINESS: time_macros CCACHE_NODIRECT: 1 run: | source /opt/intel/oneapi/setvars.sh export CCACHE_COMPILERCHECK="string:$(icpx --version 2>&1 | head -1)" mkdir build cd build cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. cmake --build . --config Release -j $(nproc) ubuntu-22-cmake-sycl-fp16: runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: dwhisper_sycl: [ON] dcmake_c_compiler: [icx] dcmake_cxx_compiler: [icpx] arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le] continue-on-error: true steps: - name: Clone uses: actions/checkout@v6 - name: add oneAPI to apt shell: bash run: | cd /tmp wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main" - name: install oneAPI dpcpp compiler shell: bash run: | sudo apt update sudo apt install intel-oneapi-compiler-dpcpp-cpp - name: install oneAPI MKL library shell: bash run: | sudo apt install intel-oneapi-mkl-devel - name: ccache uses: ggml-org/ccache-action@v1.2.21 with: key: sycl-fp16-${{ matrix.arch }} evict-old-files: 1d save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Build id: cmake_build env: CCACHE_SLOPPINESS: time_macros CCACHE_NODIRECT: 1 run: | source /opt/intel/oneapi/setvars.sh export CCACHE_COMPILERCHECK="string:$(icpx --version 2>&1 | head -1)" mkdir build cd build cmake -DGGML_SYCL_F16=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .. cmake --build . --config Release -j $(nproc)