Skip to content

CosyVoice3推理加速优化方案:ONNX图优化、TensorRT推理调整、分桶策略与CUDA Graph #1892

@BeckYang26

Description

@BeckYang26

Is your feature request related to a problem? Please describe.
当前CosyVoice3在推理时存在性能瓶颈,尤其是在高并发场景下,首响时间较长,无法满足实时性要求。实测在4090 24GB机器上,5并发场景下首响耗时约442ms,仍有较大优化空间。

Describe the solution you'd like
我提出以下三个方向的优化方案:

  1. ONNX图优化:使用onnx-slim工具先对ONNX图进行一波优化,再对其中部分算子进行调整,减少冗余计算,提升模型推理效率。
  2. TensorRT推理调整:对代码中调用TensorRT引擎推理的地方进行修改,当前使用了synchronize方法,这会导致CPU整体阻塞。应改为使用cuda stream中的wait_stream方法,仅等待正在运行的cuda stream即可,避免不必要的CPU等待。
  3. 分桶策略与CUDA Graph:将seq_len切分为多个区域,减少原本图中的分支,匹配更好的优化策略。同时可以模拟vLLM中的策略,对不同分桶创建多个CUDA Graph进行优化,进一步加速推理。
    Describe alternatives you've considered
    不影响算法本身,所有优化均只改动推理加速部分,不改变模型输出结果。
    尝试过对TensorRT中FFN部分进行手写算子插入,但性能略有下降,因此放弃此方案。

Additional context
实测效果:根据上述优化方案,在4090 24GB机器上,LLM和flow_gan模型分开部署,5并发首响从442ms缩短至352ms,性能提升约20%

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions