fix: update whisper.cpp for CUDA 13.3 - #174
Conversation
|
Thanks @BestSithInEU for the PR! |
|
Thanks for flagging this @absadiki. I investigated all three failing wheel jobs. They are not caused by the whisper.cpp v1.8.5 update: the Linux x86_64, Linux ARM, and Windows jobs all compile successfully and produce wheels containing libwhisper 1.8.5. The failures happen afterward in wheel repair:
The previous passing run used cibuildwheel 3.4.1, while this run picked up unpinned cibuildwheel 4.2.0. Current main also enables the setup.py repair step on Linux. I additionally rebuilt this PR from a fresh checkout with CUDA 13.3.73 and Python 3.14 on an RTX 4080. The wheel compiled, installed, detected the RTX 4080, loaded tiny.en on CUDA, and completed inference. A minimal packaging fix is to set NO_REPAIR=1 in CIBW_ENVIRONMENT so cibuildwheel alone owns the platform repair stage. Since that is separate from the CUDA 13 source fix, I have kept this PR scoped to the whisper.cpp update. I can submit the packaging change separately if preferred. |
|
Thanks @BestSithInEU for the detailed investigation and for testing this so thoroughly. I really appreciate it :) It's totally fine to include the packaging fix in this PR as well, so I can merge everything in one go once all the CI checks are passing. The Linux and ARM wheel issues seem to be resolved, but the Windows wheel is still failing. Could you please take a look at that one as well? Also, I'm not 100% sure, but if I remember correctly, setting NO_REPAIR=1 might cause the packaged Linux wheels to not work correctly. I think we'll need to test the resulting artifacts on Linux to make sure the change doesn't introduce another issue. |
What changed
Cause
CUDA 13.3 uses newer CCCL headers that no longer pull in
<cuda/iterator>transitively through<cub/cub.cuh>. The pinned v1.8.4 sources callcuda::make_strided_iteratorandcuda::make_counting_iteratorwithout including that header, causing CUDA builds to fail inargsort.cuandtop-k.cu. This was also reported in CrispASR#262.Whisper.cpp v1.8.5 is the first patch release containing the explicit iterator includes in both files.
Impact
Restores pywhispercpp source builds with CUDA 13.3 while keeping the dependency on a tagged whisper.cpp patch release.
Validation
GGML_CUDA=1 CMAKE_BUILD_PARALLEL_LEVEL=8 pip wheel --no-deps --no-cache-dir .pywhispercpp-1.5.1.dev1+gf3b74543d.d20260818-cp314-cp314-linux_x86_64.whl