From 663a0eee6fb5f31895167ff14792ac2898e579f1 Mon Sep 17 00:00:00 2001 From: derjohn Date: Wed, 22 Jul 2026 22:37:45 +0200 Subject: [PATCH 1/3] workflows: adds a cuda12 variant to docker workflow --- .github/workflows/docker.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f3705ad..9a658d9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -54,10 +54,11 @@ jobs: # the build container has no GPU driver. amd64 takes ggml's default # (broad) arch list; arm64 only targets Grace GPUs (Hopper + GB10). CUDA='{"variant":"cuda","arch":"amd64","runner":"ubuntu-24.04","build_base":"nvidia/cuda:13.0.1-devel-ubuntu24.04","runtime_base":"nvidia/cuda:13.0.1-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":""},{"variant":"cuda","arch":"arm64","runner":"ubuntu-24.04-arm","build_base":"nvidia/cuda:13.0.1-devel-ubuntu24.04","runtime_base":"nvidia/cuda:13.0.1-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"90;121-real"}' + CUDA12='{"variant":"cuda12","arch":"amd64","runner":"ubuntu-24.04","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real"},{"variant":"cuda12","arch":"arm64","runner":"ubuntu-24.04-arm","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real;121-real"}' if [ "${{ github.event_name }}" = "pull_request" ]; then echo "matrix={\"include\":[${CPU}]}" >> "$GITHUB_OUTPUT" else - echo "matrix={\"include\":[${CPU},${CUDA}]}" >> "$GITHUB_OUTPUT" + echo "matrix={\"include\":[${CPU},${CUDA},${CUDA12}]}" >> "$GITHUB_OUTPUT" fi # ------------------------------------------------------------------------- @@ -180,12 +181,18 @@ jobs: - image: cli variant: cuda suffix: "-cuda" + - image: cli + variant: cuda12 + suffix: "-cuda12" - image: server variant: cpu suffix: "" - image: server variant: cuda suffix: "-cuda" + - image: server + variant: cuda12 + suffix: "-cuda12" steps: - name: Resolve image name id: img From abedfc81ea74f15d61603fb41cde1de3bfe6242a Mon Sep 17 00:00:00 2001 From: derjohn Date: Wed, 22 Jul 2026 23:07:34 +0200 Subject: [PATCH 2/3] workflows: release a cude12/linux variant for older GPUs like Volta --- .github/workflows/release.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2670b37..17056c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,6 +91,12 @@ jobs: # gens, real code for 86/89/120a, plus 121a for GB10 on CUDA 13). cmake_args: "-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON" cuda_archs: "" + - backend: cuda12 + arch: x64 + runner: ubuntu-24.04 + # cuda12.x is the last cuda that supports older GPU families, like Volta. + cmake_args: "-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON" + cuda_archs: "" steps: - name: Checkout (with submodules) uses: actions/checkout@v4 @@ -137,12 +143,21 @@ jobs: sudo apt-get install -y cuda-toolkit-13-0 echo "/usr/local/cuda/bin" >> "$GITHUB_PATH" + - name: Install CUDA toolkit 12 + if: matrix.backend == 'cuda12' + run: | + wget -q https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb + sudo dpkg -i cuda-keyring_1.1-1_all.deb + sudo apt-get update + sudo apt-get install -y cuda-toolkit-12-9 + echo "/usr/local/cuda/bin" >> "$GITHUB_PATH" + - name: Configure env: CUDA_ARCHS: ${{ matrix.cuda_archs }} run: | EXTRA="" - if [ "${{ matrix.backend }}" = "cuda" ]; then + if [ "${{ matrix.backend }}" = "cuda" ] || [ "${{ matrix.backend }}" = "cuda12" ]; then # $ORIGIN rpath so the bundled cudart/cublas next to the binary # are found without LD_LIBRARY_PATH. EXTRA="-DCMAKE_BUILD_RPATH=\$ORIGIN" @@ -183,7 +198,7 @@ jobs: mkdir "$BUNDLE" cp build/examples/cli/parakeet-cli build/examples/server/parakeet-server \ LICENSE README.md "$BUNDLE"/ - if [ "${{ matrix.backend }}" = "cuda" ]; then + if [ "${{ matrix.backend }}" = "cuda" ] || [ "${{ matrix.backend }}" = "cuda12" ]; then cp -P /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so* \ /usr/local/cuda/targets/x86_64-linux/lib/libcublas.so* \ /usr/local/cuda/targets/x86_64-linux/lib/libcublasLt.so* \ @@ -238,7 +253,7 @@ jobs: CUDA_ARCHS: ${{ matrix.cuda_archs }} run: | EXTRA="" - if [ "${{ matrix.backend }}" = "cuda" ]; then + if [ "${{ matrix.backend }}" = "cuda" ] || [ "${{ matrix.backend }}" = "cuda12" ]; then EXTRA="-DCMAKE_BUILD_RPATH=\$ORIGIN" fi cmake -B build-shared \ @@ -263,7 +278,7 @@ jobs: BUNDLE="parakeet-${{ steps.ver.outputs.version }}-lib-linux-${{ matrix.backend }}-${{ matrix.arch }}" mkdir "$BUNDLE" cp build-shared/libparakeet.so include/parakeet_capi.h LICENSE README.md "$BUNDLE"/ - if [ "${{ matrix.backend }}" = "cuda" ]; then + if [ "${{ matrix.backend }}" = "cuda" ] || [ "${{ matrix.backend }}" = "cuda12" ]; then cp -P /usr/local/cuda/targets/x86_64-linux/lib/libcudart.so* \ /usr/local/cuda/targets/x86_64-linux/lib/libcublas.so* \ /usr/local/cuda/targets/x86_64-linux/lib/libcublasLt.so* \ From 9c767f9247f8afcf94d5bf1d4e31d1b0f686699c Mon Sep 17 00:00:00 2001 From: derjohn Date: Tue, 28 Jul 2026 23:32:42 +0200 Subject: [PATCH 3/3] workflows: remove 12.1 from cuda12/arm --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9a658d9..44db81b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -54,7 +54,7 @@ jobs: # the build container has no GPU driver. amd64 takes ggml's default # (broad) arch list; arm64 only targets Grace GPUs (Hopper + GB10). CUDA='{"variant":"cuda","arch":"amd64","runner":"ubuntu-24.04","build_base":"nvidia/cuda:13.0.1-devel-ubuntu24.04","runtime_base":"nvidia/cuda:13.0.1-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":""},{"variant":"cuda","arch":"arm64","runner":"ubuntu-24.04-arm","build_base":"nvidia/cuda:13.0.1-devel-ubuntu24.04","runtime_base":"nvidia/cuda:13.0.1-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"90;121-real"}' - CUDA12='{"variant":"cuda12","arch":"amd64","runner":"ubuntu-24.04","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real"},{"variant":"cuda12","arch":"arm64","runner":"ubuntu-24.04-arm","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real;121-real"}' + CUDA12='{"variant":"cuda12","arch":"amd64","runner":"ubuntu-24.04","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real"},{"variant":"cuda12","arch":"arm64","runner":"ubuntu-24.04-arm","build_base":"nvidia/cuda:12.9.2-devel-ubuntu24.04","runtime_base":"nvidia/cuda:12.9.2-runtime-ubuntu24.04","cmake_args":"-DPARAKEET_GGML_CUDA=ON -DGGML_CUDA_NO_VMM=ON","cuda_archs":"70-real;90-real"}' if [ "${{ github.event_name }}" = "pull_request" ]; then echo "matrix={\"include\":[${CPU}]}" >> "$GITHUB_OUTPUT" else