大家好,我是 Ai 学习的老章
开始之前,先感受一下 200 Tokens/s 的速度,未加速,眼球完全跟不上其生成速度。
前文不要再用Ollama,不要再用llama.cpp中说到,我在测试 llama.cpp 时发现其并发十分拉垮,虽然单个请求生成速度飞起,并发一上来速度就断崖式下降了。
究其原因是 lama.cpp 并未针对张量并行(Tensor Parallelism)与批推理(Batch Inference)进行优化,也大概率永远不会支持张量并行。所以只有在进行 LLM 的部分或全部 CPU 卸载时,才应该使用 llama.cpp。多 GPU 配置下,vLLM、SGLang 等引擎还是最佳选择。
事实上,我之前多篇文章介绍大模型本地部署时都是用的 vLLM。
前文中我提到的作者说:张量并行将模型每一层的计算分布到多块 GPU 上,与其在单块 GPU 上完成整个矩阵乘法,不如把运算切分,让每块 GPU 只处理一部分工作量,这样每块 GPU 就能同时运行不同层中的不同部分,使结果以指数级速度计算出来。
对这一点,我有点怀疑,本文我们就测试一下单卡、2 卡、4 卡情况下性能测试结果。
测试模型是我最喜欢的DeepSeek-R1-0528-Qwen3-8B
,在DeepSeek-R1-0528 蒸馏 Qwen3:8B大模型,双 4090本地部署,深得我心中实测过,上下文不做限制,默认是 128K,24GB 显存的 4090 跑不起来,2 张卡可以,最大推理速度 90Tonken/s。
测试显卡是 H200,单卡 141GB 显存
测试工具是 LLM-Benchmark
启动脚本:
直接吃掉了 126GB 显存,果然,不设限制,它会奔着打满显存空间去,这个可以通过设置 –gpu-memory-utilization 来限制。
性能测试结果:
50并发,平均TPS 83
100 并发情况下,每秒可以处理 47 个请求,平均生成速度 49 Tokens/s
双卡并行,启动和上面一样,只是指定了 2 张卡,设置了--tensor-parallel-size 2
每张卡都吃掉了 126GB 显存
性能测试结果:
单并发从 142 提升到 172
50并发,平均TPS从单卡83提升到91
100 并发情况下,每秒可以处理 47 个请求,平均生成速度 50Tokens/s,没有显著提升
--tensor-parallel-size 4
实际上,我 GPU 4 和 5 上我部署的还有其他模型
性能测试结果:
单并发从 172 进一步提升到 208
50并发,平均TPS提升到94
100 并发情况下,每秒可以处理 48 个请求,平均生成速度 50Tokens/s,也没有显著提升
8 卡并行,我没有再测试,但是我其他卡上的模型已经占满了显存,也不方便 stop
我用 Gemini 画了一幅柱状图对比看不同并行下 TPS 情况
总结来看
大模型本地部署时使用张量并行,确实可以提升单并发 TPS,但随着并发请求增加,提升并不明显。但是比起 llama.cpp 的多并发 TPS 断崖下降,确实优秀无比了。