Mooncake推理框架Qwen2.5-72B性能报告:预填充解码分离、RDMA/TCP后端与多QPS延迟实测

为探索最新的框架Mooncake在大模型上的推理性能,测试了Qwen2.5不同尺寸模型,在Non-disaggregated、Non-disaggregated with enable-chunked-prefill、Mooncake Transfer Engine with RDMA backend、Mooncake Transfer Engine with TCP backend情况下,在不同的QPS下的TTFT、TPOT、ITL的性能表现。

其中,Non-disaggregated为不使用预填充与解码分离,Non-disaggregated with enable-chunked-prefill不使用预填充与解码分离但开启分块预填充,Mooncake Transfer Engine with RDMA backend为使用Mooncake引擎并开启RDMA后端通信,Mooncake Transfer Engine with TCP backend为使用Mooncake引擎并开始TCP通信。

TTFT为首个token 响应时长 (Time to first token),TPOT为每个 token 输出时长 (Time per output token),ITL为跨 token 延迟 (Inter-token latency),QPS为每秒请求数(Queries Per Second)。ITL是衡量服务器每次处理请求并返回一定数量token所需的时间,而TPOT是衡量服务器处理单个token所需的时间。

测试了200个请求在输入长度为1024,输出长度为6,QPS为2,4,6,8情况下,TTFT (Mean TTFT、Midian TTFT、P99 TTFT)、TPOT (Mean TPOT、Midian TPOT、P99 TPOT)、ITL (Mean ITL、Midian ITL、P99 ITL)指标。

Qwen2.5-72B-Instruct

Non-disaggregated:Qwen2.5-72B-Instruct使用四卡部署,在A100上GPU 0,1,2,3这四块卡上部署端口为8100的服务,在A100上GPU 4,5,6,7这四块卡上部署端口为8200的服务,并使用round robin proxy路由将服务转到端口8090上,其中模型最大输出默认为10000,显存占用默认为0.8。

Non-disaggregated with enable-chunked-prefill:Qwen2.5-72B-Instruct使用四卡部署,在A100上GPU 0,1,2,3这四块卡上部署端口为8100的服务,在A100上GPU 4,5,6,7这四块卡上部署端口为8200的服务,并使用round robin proxy路由将服务转到端口8090上,同时部署时候开启enable-chunked-prefill,其中模型最大输出默认为10000,显存占用默认为0.8。

Mooncake Transfer Engine with RDMA backend:Qwen2.5-72B-Instruct使用四卡部署,在A100上GPU 0,1,2,3这四块卡上部署端口为8100的服务,在A100上GPU 4,5,6,7这四块卡上部署端口为8200的服务,并使用disagg prefill proxy路由将服务转到端口8090上,同时使用etcd开启2379端口进行RDMA后端通信,其中模型最大输出默认为10000,显存占用默认为0.8。

Mooncake Transfer Engine with TCP backend:Qwen2.5-72B-Instruct使用四卡部署,在A100上GPU 0,1,2,3这四块卡上部署端口为8100的服务,在A100上GPU 4,5,6,7这四块卡上部署端口为8200的服务,并使用disagg prefill proxy路由将服务转到端口8090上,同时使用etcd开启2379端口进行TCP后端通信,其中模型最大输出默认为10000,显存占用默认为0.8。

图1 Qwen2.5-72B-Instruct模型在Mean TTFT、Midian TTFT、P99 TTFT延时(单位:毫秒)

图2 Qwen2.5-72B-Instruct模型在Mean TPOT、Midian TPOT、P99 TPOT延时(单位:毫秒)

图3 Qwen2.5-72B-Instruct模型在Mean ITL、Midian ITL、P99 ITL延时(单位:毫秒)

上述结果为在同一台A100(80G显存、1000G内存)机器上:使用Non-disaggregated与Non-disaggregated with enable-chunked-prefill在Qwen2.5-72B-Instruct模型在相同QPS上TTFT、TPOT、ITL几乎没有区别。使用Mooncake Transfer Engine with RDMA backend和Mooncake Transfer Engine with TCP backend两种不同通信协议的后端,在Qwen2.5-72B-Instruct模型在相同QPS上TTFT、TPOT、ITL也几乎没有区别。

但是使用Non-disaggregated与Mooncake Transfer Engine相比,在同一台机器上,Non-disaggregated的TTFT、TPOT、ITL均优于Mooncake Transfer Engine,在QPS越大的时候更明显。

Qwen2.5-7B-Instruct-GPTQ-Int4

Non-disaggregated:Qwen2.5-7B-Instruct-GPTQ-Int4使用单卡部署,在A100上GPU 0这一块卡上部署端口为8100的服务,在A100上GPU 4这一块卡上部署端口为8200的服务,并使用round robin proxy路由将服务转到端口8090上,其中模型最大输出默认为10000,显存占用默认为0.8。

Non-disaggregated with enable-chunked-prefill:Qwen2.5-7B-Instruct-GPTQ-Int4使用单卡部署,在A100上GPU 0这一块卡上部署端口为8100的服务,在A100上GPU 4这一块卡上部署端口为8200的服务,并使用round robin proxy路由将服务转到端口8090上,同时部署时候开启enable-chunked-prefill,其中模型最大输出默认为10000,显存占用默认为0.8。

Mooncake Transfer Engine with RDMA backend:Qwen2.5-7B-Instruct-GPTQ-Int4使用单卡部署,在A100上GPU 0这一块卡上部署端口为8100的服务,在A100上GPU 4这一块卡上部署端口为8200的服务,并使用disagg prefill proxy路由将服务转到端口8090上,同时使用etcd开启2379端口进行RDMA后端通信,其中模型最大输出默认为10000,显存占用默认为0.8。

Mooncake Transfer Engine with TCP backend:Qwen2.5-7B-Instruct-GPTQ-Int4使用单卡部署,在A100上GPU 0这一块卡上部署端口为8100的服务,在A100上GPU 4这一块卡上部署端口为8200的服务,并使用disagg prefill proxy路由将服务转到端口8090上,同时使用etcd开启2379端口进行TCP后端通信,其中模型最大输出默认为10000,显存占用默认为0.8。

图4 Qwen2.5-7B-Instruct-GPTQ-Int4模型在Mean TTFT、Midian TTFT、P99 TTFT延时(单位:毫秒)

图5 Qwen2.5-7B-Instruct-GPTQ-Int4模型在Mean TPOT、Midian TPOT、P99 TPOT延时(单位:毫秒)

图6 Qwen2.5-7B-Instruct-GPTQ-Int4模型在Mean ITL、Midian ITL、P99 ITL延时(单位:毫秒)

上述结果为在同一台A100(80G显存、1000G内存)机器上:使用Non-disaggregated与Non-disaggregated with enable-chunked-prefill在Qwen2.5-7B-Instruct-GPTQ-Int4模型在相同QPS上TTFT有所增加,TPOT、ITL区别不大。

使用Mooncake Transfer Engine with RDMA backend和Mooncake Transfer Engine with TCP backend两种不同通信协议的后端,在Qwen2.5-7B-Instruct-GPTQ-Int4模型在相同QPS上,RDMA 在TPOT、ITL上略优于TCP,在TTFT上表现区别不大。

使用Non-disaggregated与Mooncake Transfer Engine相比,同一台机器上,在Qwen2.5-7B-Instruct-GPTQ-Int4、P99 TTFT,QPS为2时,Mooncake Transfer Engine优于Non-disaggregated,但其他情况下,Non-disaggregated的TTFT、TPOT、ITL均优于Mooncake Transfer Engine,在QPS越大的时候更明显。

总结: 建议不使用Mooncake Transfer Engine。

本文结束 感谢您的阅读