单B300上的DS V4:vLLM批处理仅770 tok/s

Reddit r/LocalLLaMA 新闻

摘要

用户分享了在单块B300 GPU上使用vLLM运行DeepSeek-V4-Flash的性能数据,达到约770个输出令牌每秒,并询问如何调整配置以提高吞吐量。

我一直在用DeepSeek-V4-Flash运行一个离线批处理任务(清理大量短文本记录,所以有很多小提示而非对话)。单块B300,vLLM 0.25.0,在进程内通过LLM.chat处理批数据。推理开启,每项约300个输出令牌。我目前能达到的最佳成绩是批量256时约770个总输出令牌/秒。对于B300来说,这个数值感觉有点低,我原以为能达到几千,所以我猜想可能有什么地方配置错了,想和真正运行过的人核对一下。我摸索中发现了一些问题:deep_gemm_mega_moe在单GPU上会报硬错误("MegaMoE requires expert parallel"),所以快速的MoE内核似乎需要多GPU。我回退到了flashinfer_trtllm。关闭DSpark推测解码后吞吐量大约翻了一番。在饱和批次下,它似乎只会增加开销,这也有点道理,但我想确认这是否符合预期,而不是我这边的问题。我怀疑V4稀疏MLA注意力路径可能以eager模式运行(没有cuda图),从而限制了性能,但尚未确认。大致配置:model: DeepSeek-V4-Flash (base, no DSpark) tensor_parallel_size: 1 kv_cache_dtype: fp8 block_size: 256 max_num_seqs: 256 enable_prefix_caching: true moe_backend: flashinfer_trtllm reasoning_parser: deepseek_v4 attention_config: use_fp4_indexer_cache=true compilation_config: cudagraph_mode=FULL_AND_PIECEWISE 给运行V4 Flash的人一些问题:你们实际的令牌/秒是多少,单流和批处理分别多少,用的是什么GPU?在单GPU上使用什么MoE后端?有没有不需要专家并行的快速后端?稀疏MLA路径默认是否应该使用cuda图,或者是否有标志或环境变量可以开启?(我听说过VLLM_TRITON_MLA_SPARSE_ALLOW_CUDAGRAPH,但不确定是否真实。)上面的配置有没有明显错误或遗漏?等我解决后会很高兴反馈数据。谢谢。
查看原文

相似文章