You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何不同GPU运行相同进程时nvidia-smi显示内存占用不同?

问题解答

出现这种差异的核心原因是**nvidia-smi与PyTorch内存统计的范围完全不同**,加上两款GPU的硬件架构、使用场景差异,导致全局显存占用出现区别,具体细节如下:

  • 统计范围的本质区别
    PyTorch的reserved和allocated仅统计自身内存管理器管控的显存,也就是用于张量存储、内存池预留的部分,不会包含CUDA运行时(CUDA Runtime)、GPU驱动或硬件本身占用的显存。而nvidia-smi显示的是GPU的全局显存使用量,涵盖了所有进程、驱动、硬件预留的显存总和。

  • 不同GPU架构的CUDA初始化开销差异
    A100属于Ampere架构,RTX3000属于Turing架构,两者的硬件设计逻辑不同。CUDA runtime在初始化时,会根据GPU架构分配不同的底层资源(比如调度队列、硬件加速模块的缓存),这部分显存开销不会被PyTorch统计,但会被nvidia-smi计入总占用。

  • 笔记本GPU的额外显示显存占用
    你的RTX3000是笔记本端GPU,需要负责屏幕的视频输出、显示缓存,这部分固定的显存预留是服务器端A100(无显示输出需求)不存在的,这也是nvidia-smi显示RTX3000占用更高的关键原因之一。

  • 硬件本身的显存预留差异
    不同型号的GPU会根据自身硬件特性预留部分显存,用于硬件级的功能支持(比如A100的多实例GPU功能、Tensor Core的相关缓存),这部分预留的显存同样不会被PyTorch的内存接口统计,但会体现在nvidia-smi的结果中。

内容的提问来源于stack exchange,提问作者tnknepp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:05:34