whisper.cpp CUDA 快速上手:从编译到跑通只需 3 条命令
【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp
whisper.cpp 是 OpenAI Whisper 语音识别模型的 C/C++ 移植版,CPU 推理能用,但慢得明显:仓库基准里,base 模型在 Ryzen 9 5950X 上编码一个 11 秒音频要 425 毫秒,同样的活交给一张普通的 RTX 2060 只要 24 毫秒。要批量转会议录音、播客或者做直播字幕,这个差距会直接决定任务能不能跑完。下面是从装环境到跑通第一条转录命令,再到显存不够时的降级手段。
装好 CUDA 工具链并用 cmake 打开 GPU 编译
先确认机器上有 NVIDIA 驱动和 CUDA Toolkit(NVIDIA 的 GPU 编译工具集):
nvidia-smi nvcc --version两条命令都有正常输出,再继续。然后克隆仓库、启用 CUDA 编译(GGML_CUDA是控制 CUDA 后端编译的 CMake 开关)、下载模型,一共就 3 条命令:
git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp && cmake -B build -DGGML_CUDA=1 cmake --build build -j sh ./models/download-ggml-model.sh base.en构建结束后,仓库自带的jfk.wav样例就能直接转:
./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/jfk.wav注意whisper-cli目前只认 16-bit 单声道 WAV,手里的 mp3 先转一下:ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le out.wav。
显存吃紧或速度不够时,按顺序试这三招
第一招是量化。仓库的quantize工具能把模型转成更小的整数格式,省显存也通常更快:
./build/bin/quantize models/ggml-base.en.bin models/ggml-base-q5_0.bin q5_0如果不想自己量化,直接下现成的:large-v3全精度要 2.9 GiB,large-v3-q5_0只有 1.1 GiB(models/README.md 有完整清单),下载脚本一条命令的事。
第二招是开启 flash attention。仓库基准显示,同样在 RTX 2060 上,加-fa后 medium 模型编码从 200.7 毫秒降到 115.5 毫秒,音频越长收益越大:
./build/bin/whisper-cli -m models/ggml-medium.bin -f samples/jfk.wav -fa第三招是分段。长音频先用-d只处理指定毫秒数,确认没问题再全量跑;CPU 对比时用-ng强制关 GPU 即可。
显存爆掉或编译报 CUDA 错误时的速查步骤
症状:编译期提示找不到 CUDA 或nvcc报错。原因:CMake 没找到 CUDA Toolkit。解决:
nvcc --version echo $PATH确认工具链在 PATH 里,或者在 cmake 配置时显式指定工具链路径后重新构建。
症状:运行时 CUDA out of memory,进程被杀。原因:模型加中间结果超出显存,medium 以上模型在 6GB 显存卡上很容易碰到。解决:换 q5_0 量化版或更小的模型,同时用nvidia-smi盯着显存占用确认空间。
症状:二进制能跑但 GPU 利用率始终为 0,实际在跑 CPU。原因:驱动太旧,或卡不在编译时的架构列表里(仓库默认覆盖 52/61/70/75,即 Maxwell 到 Turing)。解决:用nvidia-smi右上角的 CUDA 版本核对驱动是否足够新,老卡考虑加GGML_NATIVE让构建针对本机卡编译。
从本地跑通到长期部署的四个要点
- 确认编译开关生效:构建日志里应能看到 ggml-cuda 后端被编译,没有它的二进制只会跑 CPU。
- 多卡机器用
CUDA_VISIBLE_DEVICES=0 ./build/bin/whisper-cli ...固定用哪张卡。 - 换硬件后跑一遍
./build/bin/bench -m models/ggml-base.en.bin,用你自己的数字做容量规划。 - 长任务加
-pp看进度条,输出用2>&1 | tee run.log留档。
跑通之后如果还想再抠性能,直接看 ggml 的 CUDA 内核,或者用 scripts/bench-all.sh 在自己机器上复测一遍,仓库基准数据都在 scripts/bench-all-gg.txt 里。
【免费下载链接】whisper.cppPort of OpenAI's Whisper model in C/C++项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考