快速结论:这个报错通常出现在 SM100(Blackwell 级)机器上用标准 CUDA 依赖部署 MiniMax-M3 时,vLLM 在引擎初始化阶段编译 MSA sparse-attention 内核触发 AttributeError: module 'quack.activation' has no attribute 'sub_packed_f32x2',优先排查的是 quack-kernels / nvidia-cutlass-dsl 的版本组合以及 vLLM 是否已包含修复。
适用环境:操作系统 Linux;已复现架构 aarch64 与 x86_64;Python 3.12;GPU 架构 NVIDIA SM100;CUDA runtime 13.0.2;PyTorch 2.13.0+cu130;torchvision 0.28.0+cu130;flashinfer-python 0.6.18.post1;出问题的依赖组合为 quack-kernels 0.6.5 + nvidia-cutlass-dsl 4.7.1;最后一个已知正常版本为 quack-kernels 0.6.4 + nvidia-cutlass-dsl 4.6.2。
最快修复方案:暂无本 Issue 明确验证过的一步修复方案。Issue 中的维护者建议先在最新 main 分支上测试,并表示该 bug 可能已修复;可优先尝试升级到包含修复的 vLLM main 构建。
注意事项:Issue 正文只给出了“最后已知正常版本”和“第一个已知出错版本”的对照,并未在正文中确认具体是哪一次提交修掉了该报错;升级到 main 是否能解决,需要以实际运行结果为准。若受限于部署版本无法升级,不应随意猜测替换 quack-kernels / nvidia-cutlass-dsl 版本,因为这两个依赖由 vLLM 的标准 CUDA requirements 固定,且 MSA revision 由共享的 fmha_sm100.cmake 选择。
问题场景
用户在 SM100(Blackwell 级)系统上,使用 vLLM 部署 MiniMax-M3,模型路径包括 BF16 MiniMax-M3 以及公开的 nvidia/MiniMax-M3-NVFP4 变体。当 MiniMax-M3 选中 vLLM vendored 的 SM100 MSA(sparse-attention)实现时,CuTe DSL 在编译 MSA sparse-attention 内核阶段失败。报错发生在引擎初始化过程中,尚未开始处理任何请求。Issue 中给出的最小复现命令为:
export VLLM_LOGGING_LEVEL=DEBUG
export VLLM_TRACE_FUNCTION=1
vllm serve nvidia/MiniMax-M3-NVFP4 \
--trust-remote-code \
--language-model-only \
--tensor-parallel-size 8 \
--block-size 128 \
--kv-cache-dtype fp8 \
--attention-config \
'{"minimax_m3_msa_decode_backend":"cutlass"}'
其中 tensor-parallel size 和显存相关参数可按实际系统调整;关键条件是 MiniMax-M3 选中 vendored SM100 MSA 实现,且环境中存在 quack-kernels==0.6.5 与 nvidia-cutlass-dsl==4.7.1。
报错原文
AttributeError: module 'quack.activation' has no attribute 'sub_packed_f32x2'
File ".../vllm/third_party/fmha_sm100/cute/src/sm100/fwd/atten_fwd.py",
line 2307, in _softmax_step
...
File ".../vllm/third_party/fmha_sm100/cute/src/common/softmax.py",
line 394, in apply_exp2_convert
...
File ".../vllm/third_party/fmha_sm100/cute/src/common/utils.py",
line 1009, in ex2_emulation_2
xy_rounded_back = quack.activation.sub_packed_f32x2(
原因分析
根据 Issue 正文,最可能的原因是 quack-kernels 0.6.5 与 nvidia-cutlass-dsl 4.7.1 这一组合,与 vLLM 当时 vendored 的 MSA revision 087c161814d4d9c735b46c21212a09e5f8eb92fa 不兼容。失败的代码位于 vllm/third_party/fmha_sm100 下的 MiniMax-M3 sparse-attention 实现,具体在 ex2_emulation_2 调用 quack.activation.sub_packed_f32x2 时,quack.activation 模块中已不存在该属性。Issue 作者指出,这并非 Rubin 构建专有问题:不兼容的 Quack/CuTe DSL 版本由标准 CUDA requirements 固定,受影响的 MSA revision 由共享的 fmha_sm100.cmake 集成选择,因此使用标准 SM100 CUDA 路径的非 Rubin MiniMax-M3 部署同样会受影响。直接受影响范围是 MiniMax-M3 且选中该 MSA SM100 路径的场景。
维护者在评论中建议在最新 main 分支上测试,并认为该 bug 已经修复,但 Issue 正文未说明具体修复提交和修复方式。
环境排查
- 确认 GPU 架构是否为 NVIDIA SM100(Blackwell 级)。
- 确认 Python 是否为 Issue 中复现的 3.12(其他版本可能行为不同)。
- 确认 CUDA runtime 是否为 13.0.2。
- 确认 PyTorch 是否为 2.13.0+cu130、torchvision 是否为 0.28.0+cu130。
- 确认 flashinfer-python 是否为 0.6.18.post1。
- 确认 quack-kernels 是否为 0.6.5,以及 nvidia-cutlass-dsl 是否为 4.7.1。
- 确认 vLLM 版本/提交是否在
ec6b0494或之后,即是否处于首个已知出错版本之后。 - 确认当前使用的 vLLM 是否已包含 Issue 提到的修复(可对比 main 分支)。
- 确认部署模型是否为 BF16 MiniMax-M3 或
nvidia/MiniMax-M3-NVFP4。
解决步骤
- 先确认当前 vLLM 构建版本。Issue 指出,在 vLLM 构建处于或晚于
ec6b0494,并使用标准 CUDA 依赖集时,可在 SM100 上复现该问题。 - 如果条件允许,可优先尝试切换到最新 main 分支的 vLLM 进行测试。维护者在评论中明确建议:
could you please test on the latest main branch, I think this bug has been fixed。 - 在最新 main 构建上使用 Issue 中的最小复现条件重新启动 MiniMax-M3,重点保持 MiniMax-M3 选中 vendored SM100 MSA 实现,并确保依赖组合仍为
quack-kernels==0.6.5与nvidia-cutlass-dsl==4.7.1,以确认修复是否针对该组合生效。 - 如果最新 main 仍复现,请保留
VLLM_LOGGING_LEVEL=DEBUG与VLLM_TRACE_FUNCTION=1的完整初始化日志和 traceback,便于进一步定位是 quack/CuTe DSL 兼容性还是 MSA revision 问题。 - 在未确认有修复的版本上,不建议仅通过手工降级 quack-kernels 或 nvidia-cutlass-dsl 来绕过,因为这些版本由 vLLM 标准 CUDA requirements 固定,擅自替换可能引入其他未验证的兼容性问题。
验证方法
在应用上述排查后,使用与 Issue 相同的启动方式重新部署 MiniMax-M3,观察引擎初始化阶段是否还会出现 AttributeError: module 'quack.activation' has no attribute 'sub_packed_f32x2',以及 CuTe DSL 编译 MSA sparse-attention 内核是否仍失败。如果引擎能够完成初始化并进入可服务状态,且不再出现该 traceback,即可认为问题已解决。若仍报错,说明当前版本可能尚未包含修复,或环境组合仍有其他不兼容项。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


