build: bundle MSVC runtime DLLs into win32 zips #8
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', | |
| '**/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@df4cb1c069e1874edd31b4311f1884172cec0e10 # 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@df4cb1c069e1874edd31b4311f1884172cec0e10 # 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) |