Skip to content

feat(cuda): bundle Linux runtime libraries - #7

Merged
Chadpiha merged 2 commits into
OpenWhispr:masterfrom
IdrisGit:feat-cuda-support-linux
Oct 21, 2026
Merged

Chadpiha merged 2 commits into
OpenWhispr:masterfrom
IdrisGit:feat-cuda-support-linux

Conversation

@IdrisGit

@IdrisGit IdrisGit commented Sep 1, 2026 •

Copy link
Copy Markdown

Summary

  • Bundle libcudart, libcublas, and libcublasLt with Linux CUDA artifacts.
  • Configure $ORIGIN RUNPATH so binaries load the bundled libraries.
  • Disable unnecessary NCCL linkage.
  • Verify packaged dependencies while keeping libcuda.so.1 driver-provided.
  • Document that a current compatible NVIDIA driver is required; the CUDA Toolkit is not required.

Release coordination

This PR must be merged and released before the corresponding OpenWhispr application PR can ship: OpenWhispr/openwhispr#1982

After publishing the new whisper.cpp tag, the OpenWhispr PR must update WHISPER_CPP_TAG and the matching Linux CUDA artifact digest in src/helpers/whisperCudaManager.js.

Validation

  • Built the Linux CUDA artifacts locally with CUDA 12.9.
  • Verified RUNPATH and dependencies with readelf and ldd.
  • Confirmed CUDA transcription through OpenWhispr using the packaged runtime.
  • Confirmed CUDA → Vulkan fallback through OpenWhispr.

Before release

  • Validate the unpacked CUDA artifacts with /usr/local/cuda-12.9 unavailable, ensuring no installed Toolkit libraries can hide a missing packaged dependency.
  • Confirm libcudart, libcublas, and libcublasLt all resolve from the packaged artifact.
  • Publish a new immutable tag rather than replacing an existing release asset.

Maintenance note

CUDA 12.9, CUDA major version 12, and /usr/local/cuda-12.9 currently appear in several workflow locations. A future cleanup can move these values into top-level GitHub Actions env: constants so CUDA upgrades require fewer coordinated edits. This is workflow maintenance only and does not require repository secrets or settings.

Supports OpenWhispr/openwhispr#1415.
Supports OpenWhispr/openwhispr#945.

@Chadpiha Chadpiha left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Bundling cudart/cuBLAS/cuBLASLt with a `$ORIGIN` RUNPATH matches what the Windows CUDA build already does, and the verify step fails the build instead of shipping a bad package.

Notes before tagging 0.0.11:

  • This workflow only runs on dispatch or tag, so it hasn't run in CI yet. The release run will be its first real test.
  • The verify step checks that libcudart and libcublas resolve from `dist/`, but not libcublasLt. Please do the manual check from the PR description on the unpacked artifact, with `/usr/local/cuda-12.9` unavailable.
  • The download gets a lot bigger: libcublasLt is several hundred MB and goes into both the whisper-cpp and whisper-server zips.
  • Publish it as a new tag. Don't re-upload assets to 0.0.10, because the app checks pinned SHA-256 digests.

After the release, openwhispr#1982 needs `WHISPER_CPP_TAG` and the Linux CUDA digests updated.

@Chadpiha
Chadpiha merged commit 05124e4 into OpenWhispr:master Oct 21, 2026
38 of 41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants