Prhub

#48073 [CPU] Fix Qwen-Next SSM type for AMX GDN

原始 PR 作者 bigPYJ1151 合并时间 2026-07-09 15:09 文件变更 1 提交数 2 评论 0 代码增减 +8 / -0

执行摘要

CPU AMX GDN 强制 SSM cache 类型为 float32

AMX GDN 需要 float32 类型的 SSM cache,如果用户配置了其他类型(如 bf16、fp16),会导致运行时错误或精度问题。PR body 明确指出 'AMX GDN requires float32 SSM type'。

值得合并,属于精准的 bugfix,逻辑清晰,无争议。建议后续补充测试覆盖 AMX 环境下 Mamba cache dtype 的自动切换行为。

讨论亮点

该 PR 没有 review 评论,只有一条来自 claude[bot] 的自动回复说明来自 fork 的 PR 禁用自动审查,以及 jikunshang 的批准。

实现拆解

vllm/platforms/cpu.pycheck_and_update_config 方法中,原有 Legacy 设置之前插入一段逻辑:

  1. 调用 torch.cpu._is_amx_tile_supported() 检测当前 CPU 是否支持 AMX tile 指令集。
  2. 如果支持且 cache_config.mamba_ssm_cache_dtype 不是 "float32",则将其强制设为 "float32" 并记录 warning 日志。
文件 模块 状态 重要度
vllm/platforms/cpu.py 平台层 modified 5.73

关键符号

check_and_update_config

关键源码片段

vllm/platforms/cpu.py core-logic

核心变更文件:在 check_and_update_config 中新增 AMX 检测与 SSM dtype 自动切换逻辑。

# vllm/platforms/cpu.py (check_and_update_config 方法内 )
​
        # Lagecy setting 之前插入
        # AMX GDN 要求 Mamba SSM cache 必须为 float32,否则执行错误
        if (
            torch.cpu._is_amx_tile_supported()
            and cache_config.mamba_ssm_cache_dtype != "float32"
        ):
            cache_config.mamba_ssm_cache_dtype = "float32"
            logger.warning("Reset SSM cache type to float32 for AMX mamba attention.")
​
        # Lagecy setting
        env_key = "VLLM_CPU_KVCACHE_SPACE"
        ...

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低。变更仅影响 CPU 平台且支持 AMX 的环境,对非 AMX 平台无影响。强制切换 dtype 可能覆盖用户显式配置,但已有 warning 日志告知用户。

影响范围较小:仅影响运行在支持 AMX tile 的 CPU 上且使用 Mamba SSM 模型(如 Qwen-Next 系列)的用户。之前可能因 dtype 不匹配导致 silent correctness 问题,修复后确保正确性。

隐式覆盖用户配置 缺少测试覆盖

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论