聊聊GPU利用率那些事

引言

众所周知,GPU本身的计算能力是越来越强大,特别是新一代的NVIDIA AMPERE架构发布之后,又一次刷新了大家对AI算力的认知。目前,确实有不少大规模分布式训练对更大算力的渴求是极其强烈的,比如语音、自然语言处理等。

但是,我们也不可否认还有非常多的应用场景对算力的需求不大,比如:

  • AI推理场景,基本都是在线实时计算,要求延时低,batchsize小,计算量不大。
  • AI开发机场景,团队内部共享GPU,对算力要求低。

这些场景的分布非常广泛,在这些场景下,AI应用是无法把GPU强大的计算能力全部发挥出来的。所以,长期以来,很多用户的GPU利用率都不高,基本都只有10%-30%。

一、什么是GPU利用率

GPU利用率是反馈GPU上各种资源繁忙程度的指标。GPU上的资源包括:

  • GPU core:CUDA core, Tensor Core ,integer, FP32 core,INT32 core等。
  • frame buffer:capacity, bandwidth。
  • 其他:PCIe RX / TX, NVLink RX / TX, encoder和decoder等。

通常,我们说GPU利用率泛指GPU core的利用率。

二、监控GPU利用率的方式

①一般采用nvidia-smiNVML。这两个工具在GPU驱动里面自带,使用方便,因此应用最为广泛。
聊聊GPU利用率那些事_第1张图片如图所示,可以一目了然监控到GPU的功耗,显存占用,GPU利用率等关键指标。

在这当中,GPU利用率指标可以反馈出GPU内核在过去的采样周期中一个或多个内核在 GPU 上执行的时间百分比。应该说这个指标还是比较粗放的,举个极端的例子:在过去的采样周期中,即使只有一个线程在一个GPU core上跑

你可能感兴趣的:(ai,gpu,人工智能,云服务器)