Spaces:
Running on Zero
Running on Zero
| name: CI (CUDA, ubuntu) | |
| on: | |
| workflow_dispatch: # allows manual triggering | |
| push: | |
| branches: | |
| - master | |
| paths: [ | |
| '.github/workflows/build-cuda-ubuntu.yml', | |
| '**/CMakeLists.txt', | |
| '**/.cmake', | |
| '**/*.h', | |
| '**/*.hpp', | |
| '**/*.c', | |
| '**/*.cpp', | |
| '**/*.cu', | |
| '**/*.cuh' | |
| ] | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| paths: [ | |
| '.github/workflows/build-cuda-ubuntu.yml', | |
| 'ggml/src/ggml-cuda/**' | |
| ] | |
| 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: | |
| cuda: | |
| runs-on: ubuntu-24.04 | |
| container: nvidia/cuda:12.6.2-devel-ubuntu24.04 | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: Install dependencies | |
| env: | |
| DEBIAN_FRONTEND: noninteractive | |
| run: | | |
| apt update | |
| apt install -y cmake build-essential ninja-build libgomp1 git libssl-dev | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: cuda-ubuntu-24.04-cuda | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build with CMake | |
| # TODO: Remove GGML_CUDA_CUB_3DOT2 flag once CCCL 3.2 is bundled within CTK and that CTK version is used in this project | |
| run: | | |
| cmake -S . -B build -G Ninja \ | |
| -DLLAMA_FATAL_WARNINGS=ON \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DCMAKE_CUDA_ARCHITECTURES=89-real \ | |
| -DCMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ | |
| -DGGML_NATIVE=OFF \ | |
| -DGGML_CUDA=ON \ | |
| -DGGML_CUDA_CUB_3DOT2=ON | |
| cmake --build build | |
| hip: | |
| runs-on: ubuntu-22.04 | |
| container: rocm/dev-ubuntu-22.04:6.1.2 | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: Dependencies | |
| id: depends | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y build-essential git cmake rocblas-dev hipblas-dev libssl-dev rocwmma-dev | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: cuda-ubuntu-22.04-hip | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build with native CMake HIP support | |
| id: cmake_build | |
| run: | | |
| cmake -B build -S . \ | |
| -DCMAKE_HIP_COMPILER="$(hipconfig -l)/clang" \ | |
| -DGGML_HIP_ROCWMMA_FATTN=ON \ | |
| -DGPU_TARGETS="gfx1030" \ | |
| -DGGML_HIP=ON | |
| cmake --build build --config Release -j $(nproc) | |
| musa: | |
| runs-on: ubuntu-22.04 | |
| container: mthreads/musa:rc4.3.0-devel-ubuntu22.04-amd64 | |
| steps: | |
| - name: Clone | |
| id: checkout | |
| uses: actions/checkout@v6 | |
| - name: Dependencies | |
| id: depends | |
| run: | | |
| apt-get update | |
| apt-get install -y build-essential git cmake libssl-dev | |
| - name: ccache | |
| uses: ggml-org/ccache-action@v1.2.21 | |
| with: | |
| key: cuda-ubuntu-22.04-musa | |
| evict-old-files: 1d | |
| save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
| - name: Build with native CMake MUSA support | |
| id: cmake_build | |
| run: | | |
| cmake -B build -S . \ | |
| -DGGML_MUSA=ON | |
| time cmake --build build --config Release -j $(nproc) | |