0. 说明

本次测试的是通过源码编译生成的可执行程序funasr-wss-server,不是通过拉取docker中的funasr-wss-server。官方有发布docker可拉取,但是镜像比较大,并且拉取速度慢,之前尝试拉取过几次,后面放弃了,转而使用源码编译方式生成可执行程序来测试。本次测试意在对比测试使用官方的GPU版本的FunASR和使用第三方的TensorRT来推理FunASR提供的模型的资源占用和转写速度,特别是在多卡情况下转写的速度。

测试数据集均为aishell1_test,总共10.03小时音频,7176条音频。

1. 测试环境

OS: Ubuntu 22.04
Python: 3.8
CUDA: 12.8
Pytorch: 
RAM: 256GB
GPU: 8张魔改版2080Ti,每张22GB显存
CPU: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 56核心

2. 单卡测试

服务端启动参数:

--batch-size 32
--model-thread-num 16 
--decoder-thread-num 16
--io-thread-num 8
并发数 耗时(单位秒) GPU利用率 CPU利用率 RTF
1 2769 6% 300% 0.0767
8 372 30% 2000% 0.0103
16 230 45% 3000% 0.0064
22 224 50% 3000% 0.0062
32 200 50% 3300% 0.0055
64 201 50% 3300% 0.0056
128 201 50% 3300% 0.0056

从上面测试结果来看,单张2080Ti魔改版显卡最大支持32并发,当并发数超过32后,RTF值没有明显变化。

同时得出一个结论,显卡利用率低,最多只能利用50%,相比于使用triton_gpu后端使用TensorRT来推理,利用率可以100%

这里修改一下服务端参数,重新测试一下。

--batch-size 32
--model-thread-num 16 
--decoder-thread-num 22
--io-thread-num 8

这里就不统计结果了,从实测来看,这个GPU利用率还是太低了,CPU利用率太高了。修改decoder-thread-num的值并没有提升GPU利用率。

3. 多卡测试

这里使用82080Ti显卡测试。

image-20260102235450730

从上图中可以看出,在多显卡的情况下,显卡利用率更低,这里客户端是32路并发,有8个客户端,同时发送32的转写请求,也就是一共256路并发。

image-20260102235955440

从上图可看出CPU已经成为了瓶颈,56个核心,全部100%

Q.E.D.


热爱生活,热爱程序