新推理引擎ParaFlow:8卡V100 16G 跑27B Q8总吞吐达到1101 token/s,还可局域网多卡互联。
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
引言
我是一名医生,也是一名本地大模型爱好者。出于兴趣,也为了满足业务使用中的需求,我在 llama.cpp 的基础上持续开发了一套多卡推理引擎。
今天,我很兴奋地向大家介绍它:ParaFlow。
我一直觉得,很多显卡的计算能力还没有在本地大模型部署中充分发挥出来。而即使有 NVLINK,能够扩展的卡数也受限,TP 效率也并不高。
我想尝试另一条路:在 PP 流水线方案下,充分利用多卡闲置的核心提高并发能力。
ParaFlow 通过流水线调度,让不同请求在不同 GPU 上错峰推进,发挥多卡的并发推理能力。不要求高速互联,PCIE2.0上一样能获得完整体验,甚至局域网内多卡互联也只损失7%不到的性能
结果
我们在此测试了两组硬件:
- 6张 RTX 3080 Ti 12GB,合计 72GB 显存;
- 8张 Tesla V100 16G,合计 128G 显存。
接下来,用实际曲线说明这套引擎能做到什么:
6 卡 RTX 3080 Ti 12GB
- 实现了 5.2 倍官方
llama.cpp的 decode 性能; - 在 qwen3.8 27B Q8 MTP3 C30 下,提供了高达 432k 的总 KV 池;
- C80 极限测试中达到了 1400 token/s 的总输出;
- 在官方
llama.cpp的 prefill 已经为多卡协同优化的前提下,我们的 6 卡 3080 Ti 的 prefill 依然取得了 2.17倍 的提升。
8 卡 Tesla V100 16G
- 我们的引擎让 2 张 V100 16G 实现了比单张 V100 32G 更高的输出速度;
- 甚至在 3-8 卡的实测中继续以接近线性的方式提升(此线性不是只总吞吐的线性,而是每卡并发的线性扩展);
- 8 卡配置中 C34 下更是提供了高达 1088K 的总 KV 池;
- C80 下最高 1101 token/s 的总输出。(此速度基于PCIE2.0,局域网8卡未测试)
多卡协同效率
对比 llama.cpp 官方引擎,我们实现了 PP 方案下多卡核心的充分调度。
多卡协同效率达到几乎 100%。统计口径为:例如 2 卡 V100 下 C8,每张卡负责 C4,此时总吞吐对比官方 llama.cpp C4 大约 2 倍:
- 225.7 tps vs 112.1 tps
- 扩展效率约为 100.7%
最后
我想表达一个小小的观点:在小规模推理框架下的多并发场景来说,ParaFlow 虽然不是最好的,但是其采用的流水线并行方案可能才是效率更高的架构。
开源
现在我决定将这个引擎完全开源出来,希望能够给本地部署的玩家们带来一丝丝的兴奋,也让小显存显卡重新迎来更实际的用处。GitHub - wolfgangsk07/paraflow: ParaFlow · 并流 — multi-GPU inference scheduling built on llama.cpp · GitHub
参与讨论