Skip to content

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

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions