快速结论:该报错通常出现在 vLLM 启动阶段,使用 FlashInfer 作为 attention backend 且开启 CUDA graph capture 时,FlashInfer workspace buffer 不够用导致 aligned_alloc 失败。优先排查是否命中 FlashInfer 的 prefill split-KV scratch buffer 申请过大的已知问题,并尝试调大 workspace buffer 或等待 FlashInfer 修复。
适用环境:Issue 已确认环境为 vLLM 0.19.1rc1.dev231+g9dd5ee011.cu130、模型 nvidia/Qwen3.5-397B-A17B-NVFP4、硬件 B300,attention backend 为 FLASHINFER,并启用 --async-scheduling。复现者还在 RTX 6000 Ada 上用相同 shape 复现了 planner 的请求,但完整 server 启动未在 B300/GB10 上测试。
最快修复方案:在修复落地前,可优先尝试设置环境变量 VLLM_FLASHINFER_WORKSPACE_BUFFER_SIZE=1073741824(即 1 GB)来规避崩溃;代价是额外占用相应 GPU 显存。Issue 中提到的根因修复位于 flashinfer-ai/flashinfer#5177。
注意事项:调大 workspace buffer 只是规避手段,并未修复 FlashInfer 规划逻辑;它可能挤占其他 GPU 显存用途。FlashInfer 侧修复尚未合并进 vLLM 发布版本时,完整 server 启动在 B300 上的实际效果未由报告者验证。
问题场景
用户使用 vLLM 启动 OpenAI 兼容 API server,模型为 nvidia/Qwen3.5-397B-A17B-NVFP4,指定 --attention-backend FLASHINFER,并启用 --async-scheduling、--enable-expert-parallel、--data-parallel-size 8、--max-num-seqs 528 等参数。服务在启动阶段、CUDA graph capture 期间直接崩溃,尚未进入正常推理服务状态。
报错原文
RuntimeError: Error in function 'aligned_alloc' at /workspace/include/flashinfer/allocator.h:49:
Buffer overflow when allocating memory for batch_prefill_tmp_v
with size 536346624 and alignment 16,
but only 413138944 bytes available in AlignedAllocator.
Increase the workspace buffer size.
原因分析
根据 Issue 讨论,根因在 FlashInfer:其 prefill plan 在计算 split-KV scratch buffer 大小时,错误地按“每个 query head 都需要独立一行”来估算。Qwen3.5 的 full-attention 层是 32 个 query heads 对 2 个 KV heads,因此 buffer 被请求得比实际需要大约 16 倍。在为 512 条序列做 CUDA graph capture 时,这个超额请求超过了 vLLM 默认的 workspace 大小,从而触发 Buffer overflow。
从数据上看,修复前 batch_prefill_tmp_v 请求约 511 MB(536,346,624 bytes),而 vLLM workspace 约 394 MB;采用 flashinfer#5177 后请求降至约 32 MB,394 MB workspace 即可容纳。
环境排查
- 确认 vLLM 版本是否为
0.19.1rc1.dev231+g9dd5ee011.cu130或相近的 0.19.x 开发版。 - 确认 attention backend 是否为
FLASHINFER。 - 确认是否启用 CUDA graph capture,以及
--max-num-seqs是否达到或超过 528。 - 确认模型是否为
nvidia/Qwen3.5-397B-A17B-NVFP4,或具有类似 query heads / KV heads 比例的 Qwen3.5 full-attention 架构。 - 确认是否启用
--async-scheduling、--enable-expert-parallel。 - 确认并行配置:Issue 中
-tp 1 -dp 2/4/8 -pp 1 --enable-expert-parallel、-tp 2 -dp 1 -pp 1、-tp 2 -dp 1 -pp 1 --enable-expert-parallel均会触发;-tp 4 -dp 1 -pp 1和-tp 8 -dp 1 -pp 1未受影响。 - 确认 FlashInfer 版本是否已包含 flashinfer-ai/flashinfer#5177 的修复。
解决步骤
- 先确认是否命中该问题:查看启动日志中是否出现
batch_prefill_tmp_v的aligned_allocbuffer overflow,并确认 attention backend 为FLASHINFER、序列数达到 512 以上。 - 在不改动代码的前提下,可优先尝试设置
VLLM_FLASHINFER_WORKSPACE_BUFFER_SIZE=1073741824后再启动 server,观察是否能越过启动阶段的 CUDA graph capture。 - 如果可行且显存允许,保持该环境变量作为临时规避;如果显存紧张,需要权衡该设置带来的额外 GPU 内存占用。
- 关注 FlashInfer 侧修复 flashinfer-ai/flashinfer#5177 的合入情况,待其进入所使用的 FlashInfer/vLLM 版本后,移除临时 workspace 放大设置并重新验证。
- 若不需要 FlashInfer 后端,也可以评估切换到其他 attention backend,但这不属于 Issue 中已验证的方案。
验证方法
使用相同模型、并行配置和 --max-num-seqs 528 重新启动 vLLM server。如果不再出现 RuntimeError: Error in function 'aligned_alloc',并且 server 能完成启动、进入监听状态,则说明规避生效。若采用 FlashInfer 修复,可观察日志中 batch_prefill_tmp_v 请求大小是否从约 511 MB 降至约 32 MB。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。

![ValueError: 'text-generation' is not a valid ModelType` [[2]](https://github.com/langgenius/dify/issues/41294). The root cause is that old rows in tables like `provider_models`, `provider_mode](https://www.chat-gpts.plus/wp-content/uploads/2026/09/41605-8fa5f766-768x403.jpg)
![[Bug v1.15] Frontend cannot receive reply after Manual Intervention Node + Conditional Branch](https://www.chat-gpts.plus/wp-content/uploads/2026/09/38315-37e2660f-768x403.jpg)