尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

whisper.cpp CUDA加速实战指南:从编译到调优的完整路径

whisper.cpp CUDA加速实战指南:从编译到调优的完整路径 whisper.cpp CUDA加速实战指南从编译到调优的完整路径【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp凌晨三点两百条客户录音还在排队转写CPU风扇转得像要起飞。把计算密集的转写任务甩给 NVIDIA GPU 是最直接的解法whisper.cpp 作为 OpenAI Whisper 的 C/C 移植实现通过 cuBLAS 和自定义 CUDA kernel 把模型推理整体放到 GPU 上跑开启 CUDA 加速后转录耗时通常能砍掉一大截。下面从编译到调优带你完整走一遍这条路径。⚡ 快速上手5分钟跑通第一条命令整个上手过程只差一个编译参数。先克隆仓库再用 CMake 配置时打开 CUDA 后端git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp cmake -B build -DGGML_CUDA1 cmake --build build -j --config Release这条命令完成带 CUDA 支持的全量编译。编译结束后下载一个小模型直接转录仓库自带的示例音频sh ./models/download-ggml-model.sh base.en ./build/bin/whisper-cli -f samples/jfk.wav -m models/ggml-base.en.bin如果你看到类似 And so my fellow Americans, ask not what your country can do for you... 的转录文本以及结尾的耗时统计行说明 whisper.cpp 的 CUDA 加速推理已经跑起来了。小贴士编译最耗时的是ggml/src/ggml-cuda/里的 CUDA kernel 编译第一次可能要等几分钟属正常现象别急着打断。 核心配置详解下面几个配置项直接决定你的转写速度、显存占用和精度。启用CUDA的编译开关 -DGGML_CUDA这个开关控制是否编入 GPU 后端默认是关的不加的话二进制只会走 CPU 推理。对应实现在ggml/src/ggml-cuda/运行时会根据矩阵大小自动选择 cuBLAS 或自定义 mmq kernel。加上-DGGML_CUDA1之后命令行不需要再指定后端默认就走 GPU。模型选择按显存档位挑模型规模直接决定显存占用和精度。原则是显存装得下就选最大的装不下就降级别硬上。模型显存需求约速度适用场景tiny 1GB最快快速验证、低精度场景base.en1~2GB快仅英文均衡之选small.en2~4GB中等高精度英文场景medium.en4~6GB较慢多语种、专业级精度large8GB最慢精度优先的极限场景拿不准就从base.en起步体积小、速度快多数场景精度够用。线程数 -t这个参数控制 CPU 线程数。GPU 路径下繁重的 encoder 部分交给 GPUCPU 线程主要负责音频预处理等辅助计算设为物理核心数附近即可./build/bin/whisper-cli -f samples/jfk.wav -m models/ggml-base.en.bin -t 8经验之谈线程开太多反而可能因同步开销拖慢速度。GPU 路径的瓶颈通常在 GPU 侧这个参数调到物理核心数就收手别在这上面死磕。半精度编译 -DGGML_CUDA_F16这个编译选项把部分计算切到 FP16显存占用和计算量都能降一截对 Whisper 这类模型的精度影响通常可以忽略cmake -B build -DGGML_CUDA1 -DGGML_CUDA_F161 cmake --build build -j --config Release显存 8GB 以内的卡建议直接开重新编译一次就行。 调优与进阶量化模型用一点精度换显存和速度原理不复杂权重从浮点压成低比特整数显存占用大幅下降。仓库自带 quantize 工具一条命令搞定./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0跑推理时把-m换成量化后的文件即可。注意q4_0最省空间q5_0是精度和体积的平衡点首选它。用 bench 工具测出真实速度调优别凭感觉。用 bench 工具实测你机器上各模型的速度和内存需求./build/bin/whisper-bench -m models/ggml-small.en.bin -t 8输出里的mem_required和encode time两行是关键前者决定你这卡能不能装下这个模型后者决定你该等多久。️ 踩坑实录现象编译成功了但输出里 system_info 一行显示 CUDA 0全程 CPU 在跑。原因基本是编译时漏了-DGGML_CUDA1或者旧的 CMake 缓存没更新。解决办法删掉 build 目录重新配置再用cmake -LAH build | grep GGML_CUDA确认开关是 ON。现象跑到一半报 CUDA out of memory。遇到这个别慌十有八九是模型没选对。先看加载输出里的mem_required有多大再降级模型档位或者换 q5_0 量化版。长音频可以切段处理一次喂一小段。现象mp3 文件直接报格式错误。whisper-cli 只吃 16-bit 单声道 WAV先用 ffmpeg 转一下再喂ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav 数据说话社区基准数据RTX 2060单窗口推理能给你个直观预期模型编码耗时解码耗时tiny12.54 ms0.93 msbase24.14 ms1.28 mssmall74.70 ms2.91 msmedium200.69 ms6.46 msmedium 模型编码都在 200ms 出头一小时音频实时转完完全没压力。你自己的机器能到多少跑一遍 whisper-bench 就有答案。 生产落地容器化部署的核心就一句镜像里编译好运行时把 GPU 透传进去FROM nvidia/cuda:11.8.0-devel-ubuntu22.04 RUN apt-get update apt-get install -y build-essential cmake git WORKDIR /app RUN git clone https://gitcode.com/GitHub_Trending/wh/whisper.cpp cd whisper.cpp RUN cmake -B build -DGGML_CUDA1 cmake --build build -j --config Release运行时用 nvidia-container-toolkit 透传 GPU模型目录挂进容器即可。多实例场景一张卡一个实例用CUDA_VISIBLE_DEVICES做设备隔离。 延伸与社区CUDA kernel 源码ggml/src/ggml-cuda/下的 mmq、matmul 相关文件看看矩阵乘法是怎么落到 GPU 的基准追踪社区在专门的 benchmark 讨论帖里按硬件持续更新性能数据做对比时直接引用不限 NVIDIA 的路线项目里还有 Vulkan、SYCL 等后端换一行 CMake 开关就能试配置跑通只是第一步显存和精度的取舍、长音频的分批策略这些坑留给你去踩。【免费下载链接】whisper.cppPort of OpenAIs Whisper model in C/C项目地址: https://gitcode.com/GitHub_Trending/wh/whisper.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表