DeepSeek V4: GB10 上的 GPU 输出(sm_121,统一内存)来自路由专家 VRAM 镜像缓存
作者: NerdBase-by-Stark创建于 2026年9月15日更新于 2026年9月15日
□ 总结
在一款DGX Spark上(GB10,计算能力 12.1被报告为sm 121,130 GB统一内存),DeepSeek V4引擎的GPU级在路由-专家VRAM镜像缓存活动时返回不一致的文本. 同一构件在CPU上产生正确的文本,并在镜像缓存被禁用或允许生长后在GPU上产生正确的文本. 一般的CUDA内核本身看起来是正确的;缺点在于镜像缓存是如何决定它能否在统一的模具上生长.
□ 环境
- GPU: NVIDIA GB10, sm 121, 130.7 GB 统一内存(VRAM和系统RAM是同一个集合)
- CPU: Grace, arch64, 20个核心
- CUDA 13.0(nvcc V13.0.88),司机580.142,Linux 6.17
- f028d26b422144ed4a69ad9aeaee 2553ce0f9572
- 构建:`make -f Makefile. DeepSeek-v4 - C DeepSeek-v4 CUDA=1 CUDA ARCH=native'(基因内核;深地GEMM只为sm 120a而未建)
- 型号:DeepSeek V4 REAP-150B(`Puwaer/DeepSeek-V4-Flash-0731-reap-150b',型号:-型深层-v4,43层,132位路由专家)
□ 症状
旗子上方没有错误,
[DSV4 CUDA]设备 0: NVIDIA GB10 130.7 GB sm 121
v4 gpu 级= dense- matvec 设备= 0
输出被加装,同样的输入每次都给予相同的加装输出.
提示(70个令牌):"你是一个系统工程师. 在四到五句中,通过从NVME SSD中流出其专家权重来解释运行大型Mixture-of-Experts语言模型的实际取舍,而不是在记忆中将整个模型牵出. 覆盖内存脚印,解码后缀,以及快的SSD对它没有帮助的地方".
□再现.
失败( 模拟缓存活动, 默认保留) :
COLI CUDA ATTN BATCH=1 COLI CUDA MOE BATCH=1\
DSV4 CUDA EXPERT MIRORS=2048 DSV4 CUDA VRAM RESERVE MB =12000 \ \ \
./c/deepseek v4 <model > -- prompt-file 即时.txt --max-tokens 64 --memory-gb 24
# - > "作为系统工程师 详细介绍经销商, Mixture-of-Expert模型,或AS最佳
已知的系统 其他在各种系统, 问题平分 需要:
CPU 引用( 正确 ) :
DSV4 CUDA=0. /c/deepseek v4 <model>-即时-文件快取.txt-max-tokens 16-memory-gb 24
# -- >"作为一名系统工程师,核心取舍正在从内存束缚转移到..."
获得正确的 GPU 输出的两个方法 :
# 1) 将专家保留在CPU上( 任何值 1. 7 关闭镜像缓存)
... DSV4 CUDA EXPERT MIRORS=1...
# -- >"作为一个系统工程师,核心取舍是互换记忆..."
# 2) 降低储备, 使镜像缓存可以增长而不是被冻结
... DSV4 CUDA EXPERT MIRORS=2048 DSV4 CUDA VRAM RESERVE MB=256...
# -- >"作为系统工程师,核心取舍是将内存容量交换为一/O".
□ 分析
腐败跟踪了镜像缓存的成长决定,将'DSV4 CUDA VRAM RESERVE MB'与'cudaMemGetInfo'的自由内存相提并论. 在这个设备上`cudaMemGetInfo'自由等同'/proc' MemFree,因为GPU共享系统内存池. 虽然模型 . . . . . . .
内容来源: JustVugg/colibri