这是一篇踩坑复盘。我们把 GLM-5.2-Int4-Int8Mix 或 DeepSeek-V4-Flash-0731 搬上 8 张 A100 时,原以为改改参数就行,结果发现这一代新模型在架构上就没打算支持 A100。这篇博客记录了完整的排查过程、原因分析,以及最终跑通的两套社区方案。文末还整理了一份「哪些常见模型在 A100 / 4090 这类显卡上有部署限制」的速查表。


一、背景:手上是 8 张 A100,要跑两个新模型

团队内网环境是 8×A100/A800-80GB(PCIe 或 SXM),这次要部署两个 2026 年的当红模型:

  • GLM-5.2-Int4-Int8Mix:智谱 GLM-5.2 的社区 Int4/Int8 混合量化版
  • DeepSeek-V4-Flash-0731:DeepSeek-V4-Flash 的正式版(0731)

先简单介绍下这两位主角。

GLM-5.2

项目 说明
发布方 智谱 AI(Z.ai),2026 年 6 月发布并开源
定位 面向长任务时代的旗舰模型,专注 Coding 与长程 Agent 任务
架构 MoE,总参数约 744B,激活参数约 40B
注意力 DSA 稀疏注意力(sparse MLA + indexer 设计,与 DeepSeek-V3.2 同源)
上下文 真正可用的 1M Token 上下文
开源协议 MIT License

DeepSeek-V4-Flash-0731

项目 说明
发布方 DeepSeek(深度求索)
定位 DeepSeek-V4 系列的轻量级变体,面向高吞吐、低延迟服务场景
架构 MoE,总参数 284B,激活参数仅 13B
注意力 混合注意力:Token 级压缩 + DeepSeek Sparse Attention(DSA),mHC 结构共 43 层
精度 FP4 + FP8 混合精度
上下文 1M Token 无损上下文
版本说明 0731 为正式版,架构与预览版相同,重点增强后训练质量与 agentic 能力

两个模型有几个共同点,这几个共同点恰好就是后面所有坑的伏笔:MoE 架构、DSA 稀疏注意力、原生 FP8/FP4 精度、1M 上下文


二、常规操作:H200 上的部署参数(先看看“正常世界”长什么样)

在新架构显卡(H100/H200/B200 等 SM90+)上,两个模型都有官方支持的 vLLM 部署路径,参数大致如下。

DeepSeek-V4-Flash-0731

vllm serve deepseek-ai/DeepSeek-V4-Flash-0731 \
  --trust-remote-code \
  --kv-cache-dtype fp8 \
  --block-size 256 \
  --enable-expert-parallel \
  --tensor-parallel-size 8 \
  --tokenizer-mode deepseek_v4 \
  --tool-call-parser deepseek_v4 \
  --enable-auto-tool-choice \
  --reasoning-parser deepseek_v4 \
  --reasoning-config '{"reasoning_parser":"deepseek_v4","reasoning_start_str":"","reasoning_end_str":""}' \
  --speculative-config '{"method":"dspark","num_speculative_tokens":7,"draft_sample_method":"probabilistic"}'

GLM-5.2-Int4-Int8Mix

vllm serve glm/GLM-5.2-Int4-Int8Mix \
    --host 0.0.0.0 \
    --port 8000 \
    --served-model-name GLM-5.2 \
    --trust-remote-code \
    --dtype bfloat16 \
    --quantization compressed-tensors \
    --kv-cache-dtype fp8 \
    --tensor-parallel-size 8 \
    --enable-expert-parallel \
    --max-model-len auto \
    --gpu-memory-utilization 0.90 \
    --max-num-seqs 32 \
    --enable-auto-tool-choice \
    --tool-call-parser glm47 \
    --reasoning-parser glm45 \
    --speculative-config.method mtp \
    --speculative-config.num_speculative_tokens 1 \
    --disable-uvicorn-access-log

⚠️ 这两组参数仅适用于 H100/H200/B200 等 SM90+ 架构。默认 1M 上下文会瞬间吃掉大量 KV Cache 显存,实际部署请按硬件调整 --max-model-len


三、翻车现场:A100 上直接报错

把同样的命令搬到 A100 上——即便按 Ampere 的能力改小参数(去掉 FP8、缩短上下文)——启动照样失败,报错始终是同一句:

RuntimeError: Engine core initialization failed, See root cause above. Failed core proc(s): { }

这句报错信息量约等于零。真正的原因藏在更早的日志里,排查下来是两个独立的硬性架构限制

3.1 限制一:DeepGEMM 不支持 Ampere

DeepSeek-V4-Flash 跑不起来的根源在 DeepGEMM 库:

  • vLLM 主线在加载 DeepSeek-V4 时,默认强制启用针对新架构优化的 DeepGEMM 库;
  • DeepGEMM 主要为 Hopper(H100)等新架构设计,仅支持 sm_90a 及以上
  • A100/A800 是 SM80(Ampere),没有硬件级 FP8 支持,DeepGEMM 在上面运行直接导致内核崩溃;
  • 社区已有多个报告:vLLM 主线无法在 A100 上直接部署 DeepSeek-V4,TileLang 内核编译和 Engine core initialization failed 错误均与此相关。

3.2 限制二:DSA 稀疏注意力同样绑死 Hopper

GLM-5.2 的报错原因同理,而且更隐蔽。GLM-5.2 用的是 DSA 稀疏注意力架构(vLLM 中的实现为 GlmMoeDsaForCausalLM,和 DeepSeek-V3.2 同源的 sparse MLA + indexer 设计)。vLLM 里这条路径依赖两个只支持 Hopper/Blackwell(SM90+)的库

  • DeepGEMM —— 负责 indexer 的 FP8 MQA logits 计算
  • FlashMLA-Sparse / FlashAttn-MLA-Sparse —— 稀疏 MLA 注意力本体

A100/A800 是 SM80,两者都不可用,启动直接报错。

3.3 原因小结

依赖库 作用 最低架构要求 A100 (SM80)
DeepGEMM FP8 GEMM / indexer FP8 MQA logits Hopper (SM90+)
FlashMLA-Sparse 稀疏 MLA 注意力本体 Hopper (SM90+)
硬件级 FP8 FP8 KV Cache / FP8 推理 Hopper (SM90+)

一句话总结:这不是参数调优问题,是这一代模型的核心计算路径(FP8 + DSA 稀疏注意力)在架构层面就不支持 Ampere。 想在 A100 上跑,只能换路线——要么换量化格式(绕过 FP8/FP4 张量核路径),要么换推理引擎(绕过 vLLM 的 Hopper 专用内核依赖)。


四、解法一:GLM-5.2 跑通(预构建 Docker 镜像方案)

⚠️ 本节来自社区实测、真实有效,内容保持原样,仅调整排版。

社区已经整理好了预构建镜像,整套流程四步。

硬件要求

项目 要求
GPU 8× A100/A800 80GB(PCIe 或 SXM 均可)
磁盘 ≥ 440 GB(模型权重 435 GB)
驱动 支持 CUDA 12.9(实测 driver 580.95)
KV cache 只能 bf16(SM80 上这条路径不支持 fp8 KV)

第一步:下载模型

pip install -U "huggingface_hub[cli]"
hf download nvidia/GLM-5.2-NVFP4 --local-dir /mnt/data/models/GLM-5.2-NVFP4
# 435GB,视网络情况需要数小时

NVFP4 量化版在 SM80 上通过 Marlin 内核运行(没有 FP4 张量核也没关系),精度损失可接受——社区实测 AIME-2026 带工具可到 99%。

第二步:拉镜像

docker pull openguardrails/vllm-glm52-sm80:435f82d61-pr38476

镜像内容完全透明:官方 vllm/vllm-openai nightly(固定在 2026-06-22 的 main,commit 435f82d61)+ cherry-pick PR #38476 + 冲突解决,构建脚本源自 PR 评论区 @RefalMachine 验证过的配方。Dockerfile 可自行审计或重建。

注:这里实际跑的是 GLM-5.2-NVFP4(NVIDIA 官方 NVFP4 量化版),不是原计划的 Int4-Int8Mix——因为 Int4-Int8Mix 量化版本身也依赖 SM90+ 的路径。NVFP4 权重在 SM80 上经 Marlin 内核反量化运行,这是 A100 能跑通的关键。

第三步:启动

docker run -d --name glm52 \
  --gpus all --ipc host --shm-size 32g \
  -p 8000:8000 \
  -v /mnt/data/models:/models:ro \
  openguardrails/vllm-glm52-sm80:435f82d61-pr38476 \
  --model /models/GLM-5.2-NVFP4 \
  --served-model-name glm-5.2 \
  --host 0.0.0.0 --port 8000 \
  --trust-remote-code \
  --tensor-parallel-size 8 \
  --enable-expert-parallel \
  --dtype bfloat16 --kv-cache-dtype bfloat16 \
  --max-model-len 131072 \
  --gpu-memory-utilization 0.95 \
  --max-num-seqs 4 \
  --no-async-scheduling \
  --tool-call-parser glm47 --reasoning-parser glm45 \
  --enable-auto-tool-choice \
  --chat-template-content-format=string

加载 435GB 权重约需 15–25 分钟,请耐心。就绪的标志是日志出现:

Using TRITON_MLA_SPARSE attention backend out of potential backends: ['TRITON_MLA_SPARSE']
DeepGEMM not supported on this platform; using Triton fallback for sparse attention indexer.
...
Application startup complete.

第四步:验证

# 基本对话
curl -s localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "glm-5.2",
  "messages": [{"role":"user","content":"17乘以24等于多少?"}],
  "max_tokens": 2000}'

# 工具调用(glm47 解析器)
curl -s localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{
  "model": "glm-5.2",
  "messages": [{"role":"user","content":"北京今天天气怎么样?"}],
  "tools": [{"type":"function","function":{"name":"get_weather",
    "description":"查询城市天气",
    "parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}}],
  "max_tokens": 2000}'

五、解法二:DeepSeek-V4-Flash 跑通(llama.cpp 分支)

⚠️ 本节来自社区实测、真实有效,内容原样保留。

vLLM 走不通,社区另辟蹊径走 llama.cpp。nisparks 大佬发布了适用于 deepseekv4 的 llama.cpp 分支:

GitHub - nisparks/llama.cpp at wip/deepseek-v4-support · https://github.com/nisparks/llama.cpp/tree/wip/deepseek-v4-support

编译

clone 下来之后还需要编译(记得 cd 到下载目录下):

# 1. 配置编译选项(开启CUDA,并指定为A100架构)
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="80" -DLLAMA_CURL=ON

# 2. 开始编译(-j 参数会加速编译)
cmake --build build --config Release -j $(nproc)

下载 GGUF 模型

推理框架下载完之后继续下载该框架需要的 gguf 模型,同样也是该大佬分享的,地址如下:

GitHub - nisparks/llama.cpp at wip/deepseek-v4-support · https://github.com/nisparks/llama.cpp/tree/wip/deepseek-v4-support

注:GGUF 权重的实际托管地址在 Hugging Face:nsparks/DeepSeek-V4-Flash-FP4-FP8-GGUF,保留了原生的 MXFP4 + F8_E4M3_B128 混合精度格式。

完事具备之后直接启动!!!!

./build/bin/llama-server \
    -m /data/deepseek/gguf_models/DeepSeek-V4-Flash-FP4-FP8-native.gguf \
    -ngl 99 \
    --host 0.0.0.0 --port 8000 \
    --tensor-split 64,64,64,64,64,64,64,64 \
    --ctx-size 131072 \

六、延伸:哪些常见模型在 A100 / 4090 上部署受限?

这次踩坑让我们意识到:「我的卡能不能跑这个模型」已经不能只看显存够不够了。 2025 年以后发布的新模型越来越多地依赖 Hopper 及以上架构才有的能力(FP8 硬件支持、DSA 稀疏注意力内核、FP4 张量核),老卡不是「跑得慢」,而是「根本跑不起来」。这里把常见模型在这两类显卡上的限制整理成速查表。

6.1 先搞懂显卡的“代际门槛”

判断一个模型能否在某显卡上跑,除了显存,还要看三条硬门槛:

门槛 说明 涉及显卡
FP8 硬件支持 Hopper(H100/H200/H20)及以上才有;A100/3090/V100 完全没有;4090 有 FP8 算力但 vLLM 未官方支持其 FP8 推理路径 A100、A800、4090
DeepGEMM / FlashMLA 内核 DeepSeek 系及所有 DSA 稀疏注意力模型依赖,仅支持 sm_90a+;4090 是 sm_89,同样不行 A100、4090、3090
FP4 张量核(NVFP4) 只有 Blackwell(B200/RTX 50 系)才有;A100/4090 上 NVFP4 权重需经 Marlin 内核反量化运行(有可用路径,性能打折) A100、4090、H100/H200
显存墙 4090 只有 24GB,放不下多数 MoE 权重,需量化 + CPU 卸载 4090、3090

6.2 常见模型限制速查表

模型 发布 规模 A100 (SM80) RTX 4090 (SM89) 说明
DeepSeek-V3 / V3.1 / R1 2025 671B MoE ⚠️ FP8 原生权重需转换,体验差 ❌ 显存不足;异构方案可跑 FP8 混合精度训练产物;A100 需转 BF16 显存翻倍,或用 ktransformers 异构
DeepSeek-V3.2 2025 671B MoE ❌ DSA 稀疏注意力绑死 Hopper ❌ 同左 首个引入 DSA 的量产模型,sparse MLA 内核仅 SM90+
DeepSeek-V4-Flash / 0731 2026 257B-284B MoE ❌ vLLM 主线不可用;llama.cpp 分支可跑(本文方案) ❌ vLLM 论坛实测 8×4090 部署失败 FP4+FP8 混合精度 + DSA 双重限制
GLM-5 / 5.1 / 5.2 2026 744B-A40B MoE ❌ DSA 绑死 Hopper;NVFP4+Marlin 镜像可跑(本文方案) ❌ 显存不足 + 同左 量化版(Int4-Int8Mix)也依赖 SM90+ 路径,NVFP4 是 A100 可用路径
GLM-4.5 / 4.6 2025 355B-A32B MoE ⚠️ 官方有 BF16 权重可跑,但无 FP8 加速 ❌ 显存不足 无 DSA,A100 可跑 BF16/量化版
Kimi K2 2025 1T MoE ❌ 原生 FP8 权重约 1TB,A100 不支持 FP8,转 BF16 后显存翻倍,基本不可行 ❌ 显存不足 需 H800/H100 集群(如 16×H800);量化 + CPU 卸载可勉强体验
Qwen3-235B-A22B 2025 235B-A22B MoE ✅ 8×80GB A100(640GB)可跑,SGLang/vLLM 均可 ❌ 显存不足 BF16 全量约 470GB+;FP8 版在 A100 上不可用,需用 BF16 权重
Qwen3-32B / 14B 及以下 2025 Dense ✅ 单卡 A100 可跑 ✅ 单卡可跑(量化版) 无架构限制,只看显存
Llama 3.1/3.3 405B 2024 Dense ✅ 8×A100 可跑 BF16(约 810GB 紧张,INT8 更稳) ❌ 显存不足 传统 BF16 模型,无 FP8/DSA 依赖
Llama 4 Scout / Maverick 2025 MoE ✅ BF16 权重可跑 ❌ 显存不足 无 DSA,主要是显存问题
Mistral Large 2 / 24B 2024-2025 Dense ✅ 可跑 24B:✅ 量化可跑 无架构限制
MiniMax-M1 / M2 2025-2026 456B-A46B / 230B-A10B MoE ⚠️ 需要 BF16/INT8 权重(FP8 版不可用) ❌ 显存不足 MoE + lightning attention,A100 有社区跑通案例
MiniCPM / Qwen-7B 级别 小模型 无限制

怎么读这张表

  • ❌ = 该显卡上没有官方/主流可行路径;⚠️ = 有路径但体验打折或需特殊处理;✅ = 主流方案可直接跑
  • 本表针对 vLLM/SGLang 官方支持路径。llama.cpp / KTransformers / ik_llama.cpp 等社区引擎对硬件更宽容(见 6.3)
  • 显存不足不等于绝对不能跑——CPU+GPU 异构(KTransformers 等)和激进量化能塞下,但速度大打折扣

6.3 A100 / 4090 用户的现实出路

老卡用户并非完全没救,主要有三条路:

  1. 换量化格式绕开 FP8/FP4 路径:比如本文 GLM-5.2 的 NVFP4 权重在 A100 上经 Marlin 内核反量化运行。核心思路:选择能在 SM80 上软实现的量化格式(GPTQ/AWQ/Int4/Int8/Marlin 路径的 NVFP4)。
  2. 换推理引擎绕开 Hopper 专用内核:vLLM 走不通就换 llama.cpp 分支(本文 DeepSeek-V4-Flash 方案)、KTransformers(CPU+GPU 异构,单张 24GB 4090D 跑 671B 满血 DeepSeek-R1)等。
  3. 接受降级:短上下文(--max-model-len 131072 甚至更短)、低并发(--max-num-seqs 4)、BF16 KV Cache——本文两个方案都是这么妥协的产物。

6.4 一张图总结判断逻辑

判断「模型 X 能否在显卡 Y 上跑」,按顺序检查:

1. 显存够不够放权重+KV cache?
   └─ 不够 → 量化(Q4/Q8)→ 还不够 → CPU卸载/异构
2. 权重格式是否依赖该卡没有的硬件能力?
   ├─ FP8 权重 vs A100(无FP8)→ 转BF16或换量化版
   ├─ NVFP4 权重 vs 非Blackwell → 走 Marlin 反量化路径(A100可用)
   ┞─ DSA 稀疏注意力 → 仅 Hopper+,换引擎(llama.cpp等)
   └─ 都不行 → 该卡与该模型无缘,等社区方案或换卡
3. 推理引擎是否有该卡的内核实现?
   └─ vLLM 不行 → SGLang / llama.cpp / KTransformers / TensorRT-LLM

七、总结

这次预研最大的认知收获:AI 硬件代际差异已经从“性能差距”变成了“能不能跑”的鸿沟。 2025 年之前的模型(Llama 3、Qwen2.5 等)在 A100 上只存在跑得快不快的问题;2025 年之后的新模型(DeepSeek-V3.2 起、GLM-5 系、Kimi K2)把 FP8、DSA 稀疏注意力、FP4 写进了架构默认路径,A100/4090 这类 Ampere/Ada 老卡直接被排除在官方支持之外。

几点经验:

  1. 部署前先查模型对显卡架构的要求,别只看显存。“671B 需要 8×H100” 这种说法背后往往还藏着 “且仅限 H100” 的隐藏条件。
  2. vLLM 报 Engine core initialization failed 在老卡上大概率是内核架构不兼容,先翻完整日志找 DeepGEMM / TileLang / sm_80 相关关键词,别急着调参数。
  3. 社区是老卡用户的生命线。本文两个方案都来自社区:预构建镜像(GLM-5.2)和 llama.cpp 分支(DeepSeek-V4-Flash)。遇到官方不支持的场景,GitHub Issues/Discussions、知乎、vLLM 论坛往往已有人踩过同样的坑。
  4. 老卡方案的代价是妥协:短上下文、低并发、加载慢(15–25 分钟)、量化精度损失。生产环境如果在意这些,升级 H200/B200 才是正解。

参考资料

模型与部署官方资源

A100 / SM80 相关

llama.cpp / 异构方案

显卡架构与硬件代际

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐