diff --git a/.github/workflows/turboquant-ci.yml b/.github/workflows/turboquant-ci.yml index bd01bff84..844c1a8b5 100644 --- a/.github/workflows/turboquant-ci.yml +++ b/.github/workflows/turboquant-ci.yml @@ -35,6 +35,12 @@ jobs: sudo apt-get update sudo apt-get install -y build-essential cmake ccache + - uses: ggml-org/ccache-action@v1.2.21 + with: + key: turboquant-ci-cpu + evict-old-files: 1d + save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + - name: Configure run: | cmake -B build \ @@ -59,22 +65,32 @@ jobs: cuda: name: CUDA compile check runs-on: ubuntu-latest + # Same approach as the upstream ubuntu-latest-cuda job. Installing the toolkit + # onto a bare runner does not work: the cuda-12-6 meta-package depends on the + # NVIDIA kernel driver, which cannot build there, and dpkg then fails the whole + # install. A devel image ships nvcc and cuBLAS and needs no driver at all — + # correct for a compile-only check. + container: nvidia/cuda:12.6.2-devel-ubuntu24.04 steps: - uses: actions/checkout@v4 - - uses: Jimver/cuda-toolkit@v0.2.19 - id: cuda-toolkit - with: - cuda: "12.6.2" - method: network - # No sub-packages filter: ggml-cuda needs cuBLAS in addition to nvcc and - # the runtime, and guessing package names cost two failed runs. A full - # install is slower but does not break on naming. - - name: Install dependencies + env: + DEBIAN_FRONTEND: noninteractive + # No sudo: the container runs as root. run: | - sudo apt-get update - sudo apt-get install -y build-essential cmake + apt-get update + apt-get install -y build-essential cmake git libgomp1 + + # ggml's CMake picks ccache up automatically once the binary exists, so this + # only has to provide the cache. It matters here more than anywhere else: + # ggml-cuda is 131 translation units, and nvcc compiles each one several + # times over (PTX, SASS, host). Must run before Configure. + - uses: ggml-org/ccache-action@v1.2.21 + with: + key: turboquant-ci-cuda + evict-old-files: 1d + save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} - name: Configure run: | @@ -82,6 +98,8 @@ jobs: -DCMAKE_BUILD_TYPE=Release \ -DGGML_CUDA=ON \ -DCMAKE_CUDA_ARCHITECTURES=75 \ + -DGGML_NATIVE=OFF \ + -DLLAMA_FATAL_WARNINGS=ON \ -DLLAMA_BUILD_TESTS=OFF \ -DLLAMA_BUILD_EXAMPLES=OFF \ -DLLAMA_BUILD_SERVER=OFF