引言
众所周知,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-smi或NVML。这两个工具在GPU驱动里面自带,使用方便,因此应用最为广泛。<