1. 项目概述
作为一名长期从事语音识别系统优化的工程师,最近我对FunASR这个开源语音识别框架进行了深入的性能测试。FunASR作为阿里巴巴达摩院开源的语音识别工具包,在工业场景中有着广泛的应用前景。本次测试聚焦于GPU版本FunASR的推理速度优化,特别关注了在多卡环境下的性能表现。
测试环境搭建在配备8张魔改版2080Ti显卡的工作站上,每张显卡拥有22GB显存。我选择了aishell1_test数据集作为基准,包含7176条音频,总时长10.03小时。与直接使用官方Docker镜像不同,我选择了从源码编译生成funasr-wss-server可执行程序,这样可以获得更好的性能控制和优化空间。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 测试环境配置
2.1 硬件环境
测试平台的硬件配置如下:
- 操作系统:Ubuntu 22.04 LTS
- CPU:Intel Xeon E5-2680 v4 @ 2.40GHz (56核心)
- 内存:256GB DDR4
- GPU:8张魔改版NVIDIA 2080Ti (每张22GB显存)
- 存储:2TB NVMe SSD
2.2 软件环境
软件栈的配置经过精心选择:
- Python 3.8
- CUDA 12.8
- PyTorch 1.13.1 (与CUDA 12.x兼容的版本)
- FunASR最新源码编译版本
- 必要的音频处理库:librosa, soundfile等
提示:CUDA 12.x的选择是基于对最新GPU架构的支持,虽然12.8是较新的版本,但经过测试与FunASR兼容性良好。
3. 单卡性能测试
3.1 测试参数设置
服务端启动参数经过多次调优:
bash复制./funasr-wss-server \
--batch-size 32 \
--model-thread-num 16 \
--decoder-thread-num 16 \
--io-thread-num 8
这些参数的选择基于以下考虑:
- batch-size=32:在显存允许范围内最大化批处理大小
- model-thread-num=16:匹配CPU核心数分配
- decoder-thread-num=16:平衡解码计算负载
- io-thread-num=8:
