显存到底还剩多少:四种读法差 16GB,面板可能是死的

排障 · 四口径对照 · 差 16.34 GiBL1整理于 2026-10-29 有效期 180d

同一张 RTX 5090D 32GB,同一时刻四种读法给出不同答案:nvidia-smi 直接 NVML 初始化失败(rc=255);torch mem_get_info 报空闲 30.26 GiB;ComfyUI /system_stats 报空闲 13.92 GiB;真的去分配 24 GiB 成功。两个都能正常返回数据的接口差了 16.34 GiB。占卡 4 GiB 后连测 8 次,ComfyUI 那个数一个字节都没动 —— 它是启动时的一次性快照,不是实时值。

显存NVMLnvidia-smitorchComfyUI排错监控本地部署5090D32G

这条适用于

版本指纹

torch 2.11.0+cu128 / ComfyUI 0.33.0 / NVML 8.17.16.1088

具体做法

本机实测环境:RTX 5090D 32GB / Windows / 驱动 32.0.16.1088 / NVML 8.17.16.1088 / torch 2.11.0+cu128 / ComfyUI 0.33.0。采集时间 2026-10-29 01:16–01:20。机器已连续运行 14 天(2026-10-15 00:33 开机)。

【四口径对照(同一时刻)】
· nvidia-smi:rc=255,输出 Failed to initialize NVML: Unknown Error;加 -L 同样失败
· torch mem_get_info(0):空闲 32,496,418,816 B = 30.26 GiB;total 34,190,458,880 B = 31.84 GiB
· ComfyUI GET /system_stats:vram_free 14,942,293,252 B = 13.92 GiB;vram_total 34,190,458,880 B
· 真实分配:8/12/16/20/24 GiB 五档全部成功,24 GiB 档后 mem_get_info 空闲归 0
· 两个接口的差值:30.26 − 13.92 = 16.34 GiB
【冻结验证(占卡实验)】
· 另起进程 torch.empty(4×1024³, uint8, device='cuda') + fill_(1) + synchronize,共占 4 GiB
· 占卡期间每 1.2 秒采 ComfyUI vram_free,连采 8 次,全部 14,942,293,252 —— 极差 0 B
· 占卡进程退出、4 GiB 归还后,仍为 14,942,293,252
· 静止状态连采 5 次(间隔 1 秒),极差同为 0 B
· 结论:该字段是进程启动时算的一次性快照,之后不再刷新
【硬件状态自证】
· PnP 状态 OK / ConfigManagerErrorCode = 0 / nvlddmkm 服务 Running
· nvml.dll 与 nvidia-smi.exe 版本号完全一致:8.17.16.1088
· 同一时刻 torch cuda.is_available() = True,device_count = 1,CC 12.0,170 SM

【为什么这件事值一万五】
· 若按 13.92 GiB 判断:会认为「32GB 卡只剩 14GB」,把 20GB 级模型降到 Q4 量化(画质掉一档),或判断「32GB 不够用」去看 48GB 的卡 —— 那是多花约一万五

失效边界
三条边界:① 本账是本机单次故障现象,不代表所有 NVML 初始化失败都是同一原因 ② 不同驱动版本、虚拟化与远程桌面环境下表现可能不同(本机同时存在 Microsoft Remote Display Adapter) ③ 显存分配上限受后台任务影响,复测时须确保无其他进程占用;本次未对 NVML 故障做修复操作,仅记录现象。
← NAS 测出 10MB/s 别急着换盘:一个同步落盘标志让它慢 7.3 倍自定义节点挂了却不报错:重启后查一行日志 →

← 返回全部排错方案