【操作系统09】GPU占用率(GPU Utilization)与显存占用率(VRAM Utilization)

原创作者:郑同学的笔记
原文链接:https://zhengjunxue.blog.csdn.net/article/details/145541881

一、GPU占用率(GPU Utilization)

  • GPU占用率(说法一)
    定义:GPU占用率表示GPU计算单元(如CUDA核心、流处理器)在特定时间段内的活跃程度。它反映了GPU执行计算任务的时间比例。

计算公式:

G P U 占用率 = ( GPU计算核心活跃时间 总采样时间 ) × 100 % GPU占用率 = \left( \frac{\text{GPU计算核心活跃时间}}{\text{总采样时间}} \right) \times 100\% GPU占用率=(总采样时间GPU计算核心活跃时间)×100%
示例:若1秒内GPU执行计算的时间为800毫秒,则占用率为80%。

根据NVIDIA的官方说明,GPU利用率确实是通过计算引擎的活跃时间来衡量的。例如,使用nvidia-smi工具报告的GPU-Util百分比就是基于过去采样周期内GPU执行计算任务的时间比例。因此,公式中的分子应该是GPU核心实际进行计算的时间,而分母是总采样时间。

说法二:
GPU占用率是指GPU核心(即图形处理单元)的工作强度,反映了GPU计算资源的使用情况。它表示GPU的计算核心在给定时间内处于活跃状态的比例。高占用率意味着GPU在处理计算任务(例如,渲染图形、训练深度学习模型等)时几乎全力运转
G P U 占用率 = ( GPU计算核心实际使用时间 GPU计算核心可用时间 ) × 100 % GPU占用率 = \left( \frac{\text{GPU计算核心实际使用时间}}{\text{GPU计算核心可用时间}} \right) \times 100\% GPU占用率=(GPU计算核心可用时间GPU计算核心实际使用时间)×100%
GPU计算核心实际使用时间:表示GPU核心在处理任务时的工作时间。
GPU计算核心可用时间:表示GPU核心总的可工作时间(即GPU处于工作的时间段)。

说法三:
GPU占用率
定义:GPU占用率指GPU计算单元的使用比例,反映GPU的计算负载。
G P U 占用率 = ( 实际使用的计算单元 总计算单元 ) × 100 % GPU占用率 = \left( \frac{\text{实际使用的计算单元}}{\text{总计算单元}} \right) \times 100\% GPU占用率=(总计算单元实际使用的计算单元)×100%

第一、二种写法:基于时间维度,适合描述计算核心的时间利用率。
第三种写法:基于计算单元的使用比例,适合描述并行计算负载。
实际工具中(如nvidia-smi),通常使用第一、二种写法.在时间维度统计。

  • 监控工具:NVIDIA的nvidia-smi显示的GPU-Util、tegrastats(嵌入式设备)、Windows任务管理器。

  • 影响因素:
    计算密集型任务(如深度学习训练、图形渲染)。
    并行计算的优化程度(如CUDA内核的并行性)。

二. 显存占用率(VRAM Utilization)

定义:显存占用率表示GPU显存(Video RAM)的使用比例,即已分配的显存占总显存容量的比例。

计算公式:

显存占用率 = ( 已使用显存 总显存容量 ) × 100 % 显存占用率 = \left( \frac{\text{已使用显存}}{\text{总显存容量}} \right) \times 100\% 显存占用率=(总显存容量已使用显存)×100%
已使用显存量:GPU当前被使用的显存量。
总显存量:GPU显卡的总显存容量(如8GB、16GB等)。

示例:若显存总容量为8GB,已使用4GB,则占用率为50%。

  • 监控工具:nvidia-smi中的Memory-Usage、gpustat、GPU-Z。

  • 影响因素:
    数据大小:图形数据、纹理、模型等需要存储在显存中。如果任务需要处理大量图像、纹理或其他数据,显存占用会显著增加。
    分辨率和质量设置:在图形渲染中,高分辨率和高质量设置(如高分辨率纹理、复杂的着色器等)会消耗更多的显存。
    并行计算任务:像深度学习模型训练,尤其是在使用大规模的批量大小(batch size)时,显存需求也会增加。

三、对比分析

维度 GPU占用率 显存占用率
核心关注点 计算资源的忙碌程度(时间维度)。 存储资源的使用比例(空间维度)。
高低的意义 高=表示计算资源被充分利用。 高=表示显存接近满载,可能触发内存不足错误。
优化目标 提高并行度,减少空闲。 减少数据缓存,压缩模型或数据。
典型场景 训练大型模型、实时渲染。 加载大尺寸数据集、高分辨率纹理。
相互独立性 可高占用率但低显存(如小模型密集计算)。 可高显存但低占用率(如预加载数据不计算)。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐