Spaces:
Running on Zero
Running on Zero
| name: CI (opencl) | |
| on: | |
| workflow_dispatch: # allows manual triggering | |
| push: | |
| branches: | |
| - master | |
| paths: [ | |
| '.github/workflows/build-opencl.yml', | |
| '**/CMakeLists.txt', | |
| '**/.cmake', | |
| '**/*.h', | |
| '**/*.hpp', | |
| '**/*.c', | |
| '**/*.cpp', | |
| '**/*.cl' | |
| ] | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: [ | |
| '.github/workflows/build-opencl.yml', | |
| 'ggml/src/ggml-opencl/**' | |
| ] | |
| 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: | |
| windows-2025-opencl-adreno: | |
| runs-on: windows-2025 | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: opencl-windows-2025-x64 | |
| variant: ccache | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Install Ninja | |
| id: install_ninja | |
| run: | | |
| choco install ninja | |
| - name: Install OpenCL Headers and Libs | |
| id: install_opencl | |
| run: | | |
| git clone https://github.com/KhronosGroup/OpenCL-Headers | |
| cd OpenCL-Headers | |
| cmake -B build ` | |
| -DBUILD_TESTING=OFF ` | |
| -DOPENCL_HEADERS_BUILD_TESTING=OFF ` | |
| -DOPENCL_HEADERS_BUILD_CXX_TESTS=OFF ` | |
| -DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release" | |
| cmake --build build --target install | |
| git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader | |
| cd OpenCL-ICD-Loader | |
| cmake -B build-arm64-release ` | |
| -A arm64 ` | |
| -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" ` | |
| -DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release" | |
| cmake --build build-arm64-release --target install --config release | |
| - name: Build | |
| id: cmake_build | |
| run: | | |
| cmake -S . -B build -G "Ninja Multi-Config" -D CMAKE_TOOLCHAIN_FILE=cmake/arm64-windows-llvm.cmake -DCMAKE_PREFIX_PATH="$env:RUNNER_TEMP/opencl-arm64-release" -DGGML_OPENCL=ON -DGGML_OPENCL_USE_ADRENO_KERNELS=ON -DLLAMA_BUILD_BORINGSSL=ON | |
| cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS} | |