From ace6037a2dc632803c629821f98f506d44847a62 Mon Sep 17 00:00:00 2001
From: rob thijssen
Date: Mon, 11 May 2026 14:45:28 +0300
Subject: [PATCH] feat: replace cuda13 flavour with per-GPU-generation packages
Build separate packages for each GPU generation instead of a single
cuda13 package:
- mistralrs-ampere (sm_86, RTX 3060)
- mistralrs-ada (sm_89, RTX 4090)
- mistralrs-blackwell (sm_120, RTX 5090)
All use the same CUDA 13.0 toolkit and features (cuda, cudnn, flash-attn,
nccl), varying only the compute capability target.
Co-Authored-By: Claude Opus 4.6 (1M context)
---
.gitea/workflows/build-prerelease.yml | 24 ++++++++++++++++++++++--
.gitea/workflows/build-release.yml | 24 ++++++++++++++++++++++--
.gitea/workflows/poll-upstream.yml | 4 ++--
rpm/mistralrs.spec | 2 +-
ui/src/pages/Home.tsx | 9 ++++++---
5 files changed, 53 insertions(+), 10 deletions(-)
diff --git a/.gitea/workflows/build-prerelease.yml b/.gitea/workflows/build-prerelease.yml
index 785ed17..2f4a435 100644
--- a/.gitea/workflows/build-prerelease.yml
+++ b/.gitea/workflows/build-prerelease.yml
@@ -30,7 +30,23 @@ jobs:
fail-fast: false
matrix:
include:
- - name: cuda13
+ - name: ampere
+ fedora_version: "43"
+ runner: cuda-13.0
+ cuda_home: /usr/local/cuda-13.0
+ cargo_features: "cuda cudnn flash-attn nccl"
+ compute_caps: "86"
+ build_jobs: 12
+ nvcc_threads: 4
+ - name: ada
+ fedora_version: "43"
+ runner: cuda-13.0
+ cuda_home: /usr/local/cuda-13.0
+ cargo_features: "cuda cudnn flash-attn nccl"
+ compute_caps: "89"
+ build_jobs: 12
+ nvcc_threads: 4
+ - name: blackwell
fedora_version: "43"
runner: cuda-13.0
cuda_home: /usr/local/cuda-13.0
@@ -89,7 +105,11 @@ jobs:
fail-fast: false
matrix:
include:
- - name: cuda13
+ - name: ampere
+ fedora_version: "43"
+ - name: ada
+ fedora_version: "43"
+ - name: blackwell
fedora_version: "43"
steps:
- uses: actions/checkout@v4
diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml
index 77fb68a..54b0a74 100644
--- a/.gitea/workflows/build-release.yml
+++ b/.gitea/workflows/build-release.yml
@@ -18,7 +18,23 @@ jobs:
fail-fast: false
matrix:
include:
- - name: cuda13
+ - name: ampere
+ fedora_version: "43"
+ runner: cuda-13.0
+ cuda_home: /usr/local/cuda-13.0
+ cargo_features: "cuda cudnn flash-attn nccl"
+ compute_caps: "86"
+ build_jobs: 12
+ nvcc_threads: 4
+ - name: ada
+ fedora_version: "43"
+ runner: cuda-13.0
+ cuda_home: /usr/local/cuda-13.0
+ cargo_features: "cuda cudnn flash-attn nccl"
+ compute_caps: "89"
+ build_jobs: 12
+ nvcc_threads: 4
+ - name: blackwell
fedora_version: "43"
runner: cuda-13.0
cuda_home: /usr/local/cuda-13.0
@@ -76,7 +92,11 @@ jobs:
fail-fast: false
matrix:
include:
- - name: cuda13
+ - name: ampere
+ fedora_version: "43"
+ - name: ada
+ fedora_version: "43"
+ - name: blackwell
fedora_version: "43"
steps:
- uses: actions/checkout@v4
diff --git a/.gitea/workflows/poll-upstream.yml b/.gitea/workflows/poll-upstream.yml
index 78cefdf..4923dcb 100644
--- a/.gitea/workflows/poll-upstream.yml
+++ b/.gitea/workflows/poll-upstream.yml
@@ -28,7 +28,7 @@ jobs:
run: |
version="${UPSTREAM_TAG#v}"
needs_build=false
- for target in "43:cuda13"; do
+ for target in "43:ampere" "43:ada" "43:blackwell"; do
fedora_version="${target%%:*}"
flavour="${target##*:}"
base_url="https://rpm.lair.cafe/fedora/${fedora_version}/x86_64"
@@ -116,7 +116,7 @@ jobs:
run: |
prerelease="0.1.${UPSTREAM_DATE}git${UPSTREAM_SHORT_SHA}"
needs_build=false
- for target in "43:cuda13"; do
+ for target in "43:ampere" "43:ada" "43:blackwell"; do
fedora_version="${target%%:*}"
flavour="${target##*:}"
base_url="https://rpm.lair.cafe/fedora/${fedora_version}/x86_64/unstable"
diff --git a/rpm/mistralrs.spec b/rpm/mistralrs.spec
index 10489d9..38dfc81 100644
--- a/rpm/mistralrs.spec
+++ b/rpm/mistralrs.spec
@@ -4,7 +4,7 @@
# Passed in via --define at rpmbuild time
%{!?mistralrs_version: %global mistralrs_version 0.7.0}
-%{!?mistralrs_flavour: %global mistralrs_flavour cuda13}
+%{!?mistralrs_flavour: %global mistralrs_flavour blackwell}
# For prerelease builds, pass --define "mistralrs_prerelease 0.1.YYYYMMDDgitSHORTSHA"
%if 0%{?mistralrs_prerelease:1}
diff --git a/ui/src/pages/Home.tsx b/ui/src/pages/Home.tsx
index 417c047..c7bb762 100644
--- a/ui/src/pages/Home.tsx
+++ b/ui/src/pages/Home.tsx
@@ -44,8 +44,11 @@ export function Home() {
3. Install a package
+
+ Choose the package matching your GPU generation:
+
- {`sudo dnf install mistralrs-cuda13`}
+ {`# RTX 3000 series (Ampere)\nsudo dnf install mistralrs-ampere\n\n# RTX 4000 series (Ada Lovelace)\nsudo dnf install mistralrs-ada\n\n# RTX 5000 series (Blackwell)\nsudo dnf install mistralrs-blackwell`}
@@ -78,7 +81,7 @@ export function Home() {
Install or update from unstable
- {`sudo dnf --enablerepo=lair-cafe-unstable install mistralrs-cuda13`}
+ {`sudo dnf --enablerepo=lair-cafe-unstable install mistralrs-ada`}
@@ -89,7 +92,7 @@ export function Home() {
stable releases, exclude prerelease versions:
- {`sudo dnf --disablerepo=lair-cafe-unstable update mistralrs-cuda13`}
+ {`sudo dnf --disablerepo=lair-cafe-unstable update mistralrs-ada`}