From fc5ed1ff40beb8e3d2fe1d1fd535ff3624fe539e Mon Sep 17 00:00:00 2001 From: James Pine Date: Wed, 18 Mar 2026 07:44:47 -0700 Subject: [PATCH] upgrade CUDA backend from cu126 to cu128 and fix GPU settings UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upgrade CUDA toolkit from 12.6 (cu126) to 12.8 (cu128) for proper RTX 50-series (Blackwell) GPU support. Users with RTX 5070/5080/5090 were reporting CUDA detection failures with cu126. Also fix the GPU Acceleration settings panel where the 'Switch to CPU Backend' button was unreachable — it was inside a conditional block that required !isCurrentlyCuda, making it impossible to switch back to CPU once running on CUDA. Closes #315 --- .github/workflows/release.yml | 14 ++--- .../ServerSettings/GpuAcceleration.tsx | 58 ++++++++++++------- backend/build_binary.py | 2 +- backend/requirements.txt | 2 +- backend/services/cuda.py | 2 +- docs/content/docs/developer/building.mdx | 4 +- justfile | 2 +- scripts/package_cuda.py | 10 ++-- 8 files changed, 54 insertions(+), 40 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1312ca37..a3c224df 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -191,10 +191,10 @@ jobs: pip install --no-deps chatterbox-tts pip install --no-deps hume-tada - - name: Install PyTorch with CUDA 12.6 + - name: Install PyTorch with CUDA 12.8 run: | - pip install torch --index-url https://download.pytorch.org/whl/cu126 --force-reinstall --no-deps - pip install torchaudio --index-url https://download.pytorch.org/whl/cu126 --force-reinstall --no-deps + pip install torch --index-url https://download.pytorch.org/whl/cu128 --force-reinstall --no-deps + pip install torchaudio --index-url https://download.pytorch.org/whl/cu128 --force-reinstall --no-deps - name: Verify CUDA support in torch run: | @@ -211,8 +211,8 @@ jobs: python scripts/package_cuda.py \ backend/dist/voicebox-server-cuda/ \ --output release-assets/ \ - --cuda-libs-version cu126-v1 \ - --torch-compat ">=2.6.0,<2.11.0" + --cuda-libs-version cu128-v1 \ + --torch-compat ">=2.7.0,<2.11.0" - name: Upload archives to GitHub Release if: startsWith(github.ref, 'refs/tags/') @@ -221,8 +221,8 @@ jobs: files: | release-assets/voicebox-server-cuda.tar.gz release-assets/voicebox-server-cuda.tar.gz.sha256 - release-assets/cuda-libs-cu126-v1.tar.gz - release-assets/cuda-libs-cu126-v1.tar.gz.sha256 + release-assets/cuda-libs-cu128-v1.tar.gz + release-assets/cuda-libs-cu128-v1.tar.gz.sha256 release-assets/cuda-libs.json draft: true env: diff --git a/app/src/components/ServerSettings/GpuAcceleration.tsx b/app/src/components/ServerSettings/GpuAcceleration.tsx index b9cb70b3..7b2c9749 100644 --- a/app/src/components/ServerSettings/GpuAcceleration.tsx +++ b/app/src/components/ServerSettings/GpuAcceleration.tsx @@ -243,7 +243,40 @@ export function GpuAcceleration() { {/* Native GPU detected - no CUDA download needed */} - {/* CUDA download section - only show when no GPU is active (native or CUDA) */} + {/* Currently running CUDA - show switch back to CPU */} + {isCurrentlyCuda && platform.metadata.isTauri && ( + <> + {restartPhase !== 'idle' ? ( +
+ + + {restartPhase === 'stopping' && 'Stopping server...'} + {restartPhase === 'waiting' && 'Restarting server...'} + {restartPhase === 'ready' && 'Server restarted successfully!'} + +
+ ) : ( +
+

+ Running with CUDA GPU acceleration. Switch back to CPU if needed (you can + re-download later). +

+ +
+ )} + {error && ( +
+ + {error} +
+ )} + + )} + + {/* CUDA download/manage section - show when no native GPU and not currently running CUDA */} {!hasNativeGpu && !isCurrentlyCuda && ( <> {/* Download progress (manual download or auto-update) */} @@ -315,7 +348,7 @@ export function GpuAcceleration() { )} {/* Downloaded but not active - show switch button */} - {cudaAvailable && !isCurrentlyCuda && platform.metadata.isTauri && ( + {cudaAvailable && platform.metadata.isTauri && (

CUDA backend is downloaded and ready. Restart the server to enable GPU @@ -328,27 +361,8 @@ export function GpuAcceleration() {

)} - {/* Currently active - show switch back to CPU */} - {isCurrentlyCuda && platform.metadata.isTauri && ( -
-

- Running with CUDA GPU acceleration. Switch back to CPU if needed (you can - re-download later). -

- -
- )} - {/* Delete option when downloaded (and not active) */} - {cudaAvailable && !isCurrentlyCuda && ( + {cudaAvailable && (