前言
截止目前为止,vLLM 官方版本都不支持在 30 系上运行 DeepSeek V4 系列(vllm-project/vllm/issues/40851)
关于 DeepSeek V4 Flash,站内已经有很多部署成功的案例了,DGX Spark、RTX Pro 6000、H800 等等,8 卡 A100 也有一篇四月份的,但是用的是 llama.cpp,看上去性能不太理想,只有 14 token/s 左右,属于玩具级别。
之前就注意到有一些第三方的 vLLM/SGLang 版本解决了 A100/A800 不能跑的问题,但不确定实际效果怎么样,正好手头有闲置的算力,因此进行了实验,本文为实验结果。
本人比较熟悉 vLLM,而且 vLLM 这个版本可以使用原版模型,不需要量化或者 gguf,因此就只测试了这个。
抛砖引玉,测试方法比较粗糙,欢迎大家交流指正。
测试环境
GPU: 4 x A800 80GB (sm_80)
Engine: lazymio/vllm-backport:v0.2.0-sm80 on Docker
Model: deepseek-ai/DeepSeek-V4-Flash-0731 (官方原版模型)
测试于 2026/08/11 进行,目前最新 vllm-backport 最新版本出到了 v0.5.0,出于 GPU 资源协调原因短期内不一定能测
速度测试
简单的速度测试脚本
import json, time, urllib.request
def bench(n=3, max_tokens=1000):
payload = {
"model": "deepseek-v4:flash-0731",
"messages": [{"role": "user", "content": "写一篇关于人工智能的短文"}],
"max_tokens": max_tokens,
"chat_template_kwargs": {"thinking": True, "reasoning_effort": "high"},
}
req = urllib.request.Request(
"http://localhost:8000/v1/chat/completions",
data=json.dumps(payload).encode(),
headers={"Content-Type": "application/json"},
)
for i in range(n):
t0 = time.time()
with urllib.request.urlopen(req, timeout=600) as r:
d = json.load(r)
dt = time.time() - t0
toks = d["usage"]["completion_tokens"]
print(f"req{i+1}: tokens={toks} time={dt:.2f}s tps={toks/dt:.1f}")
bench()
测试结果
基础参数
--tensor-parallel-size 4
--max-model-len 393216
--gpu-memory-utilization 0.90
--enable-prefix-caching
--enable-prompt-tokens-details
--enable-expert-parallel
--kv-cache-dtype fp8_ds_mla
--reasoning-parser deepseek_v4
--tool-call-parser deepseek_v4
--enable-auto-tool-choice
三次平均速度: 59.4 tps
开启 DSpark
额外参数
--speculative-config '{"method":"dspark","num_speculative_tokens":5}'
--kv-cache-memory 17179869184
不加 --kv-cache-memory 的话因为 dspark 空间没预留够会 OOM
三次平均速度: 82.8 tps (加速比例 1.39x)
添加 wtdcode/vllm-backport 仓库推荐参数1 (省显存?)
额外参数
--compilation-config '{"cudagraph_mode":"PIECEWISE"}'
三次平均速度: 30.0 tps (相较基础参数,输出速度接近砍半)
添加 wtdcode/vllm-backport 仓库推荐参数2 (稳输出?)
额外参数
--hf-overrides '{"head_dtype": "float32"}'
三次平均速度: 58.8 tps (相较基础参数,输出速度基本不变)
最终配置
--tensor-parallel-size 4
--max-model-len 393216
--gpu-memory-utilization 0.90
--enable-prefix-caching
--enable-prompt-tokens-details
--enable-expert-parallel
--trust-remote-code
--kv-cache-dtype fp8_ds_mla
--reasoning-parser deepseek_v4
--tool-call-parser deepseek_v4
--enable-auto-tool-choice
--hf-overrides '{"head_dtype": "float32"}'
--speculative-config '{"method":"dspark","num_speculative_tokens":5}'
--kv-cache-memory=14872904807
四卡每张显存占用约 78.40 GB
GPU KV cache size: 710,018 tokens
Maximum concurrency for 393,216 tokens per request: 1.81x
三次平均速度: 84.7 tps (加速比例 1.42x)
上下文试了下拉个 512k 没什么问题,拉 1M 会爆显存,推荐 8 卡尝试
并发测试
简单并发测试脚本
"""并发能力测试:1/2/4/8/16 并发,每档 12 个请求,每个 max_tokens=256(无 thinking,贴近普通调用)"""
import json
import time
import urllib.request
from concurrent.futures import ThreadPoolExecutor
URL = "http://localhost:8000/v1/chat/completions"
PAYLOAD = {
"model": "deepseek-v4:flash-0731",
"messages": [{"role": "user", "content": "写一篇关于人工智能的短文,介绍它的发展历史"}],
"max_tokens": 256,
}
def one_request(i):
req = urllib.request.Request(
URL,
data=json.dumps(PAYLOAD).encode(),
headers={"Content-Type": "application/json"},
)
t0 = time.time()
with urllib.request.urlopen(req, timeout=600) as r:
d = json.load(r)
dt = time.time() - t0
toks = d["usage"]["completion_tokens"]
return dt, toks
def bench(concurrency, total_reqs):
t0 = time.time()
with ThreadPoolExecutor(max_workers=concurrency) as ex:
results = list(ex.map(one_request, range(total_reqs)))
wall = time.time() - t0
lats = [r[0] for r in results]
toks = sum(r[1] for r in results)
tps = toks / wall
p50 = sorted(lats)[len(lats) // 2]
p95 = sorted(lats)[int(len(lats) * 0.95) - 1]
print(
f"并发={concurrency:2d} 请求={total_reqs} 总耗时={wall:6.2f}s "
f"总tokens={toks} 吞吐={tps:6.1f} tps "
f"延迟 p50={p50*1000:6.0f}ms p95={p95*1000:6.0f}ms max={max(lats)*1000:6.0f}ms"
)
return tps
print("=== DeepSeek-V4-Flash 并发测试(每请求 max_tokens=256)===")
for c in [1, 2, 4, 8, 16]:
bench(c, 12)
print("=== 完成 ===")
并发测试结果

并发极限差不多就 400token/s,16 线程,每个用户就 25 token/s 了,30 系还是老了
鹈鹕测试
提示词
创建一个HTML,内容是SVG绘制一个鹈鹕骑自行车的2D动画。
速度

Cherry Studio 能测到 180 token/s,3倍提升,DSpark 恐怖如斯
输出结果

结论
4 卡 A800 跑 DeepSeek V4 Flash 0731,上下文能开到 512k,单线程使用的话,不开 DSpark 大概 60 token/s,开启后 120 token/s ~ 180 token/s,非常可用。