我试图在一段时间内获取有关 GPU 整体利用率的信息(我的是 NVIDIA Tesla K20,在 Linux 上运行)。“整体”是指计划运行多少个流式多处理器,以及计划运行多少个 GPU 内核(我想如果一个内核正在运行,它将以其全速/频率运行?)。如果我能得到以 flops 衡量的整体利用率,那就太好了。
当然,在这里提出问题之前,我已经搜索和调查了几个现有的工具/库,包括 NVML(以及基于它构建的 nvidia-smi)、CUPTI(和 nvprof)、PAPI、TAU 和 Vampir。但是,似乎(但我还不确定)他们都无法为我提供所需的信息。例如,NVML 可以按百分比报告“GPU 利用率”,但根据其文档/评论,此利用率是“过去一秒内一个或多个内核在 GPU 上执行的时间百分比”,这显然不够准确. 对于 nvprof,它可以报告单个内核的失败(开销非常高),但我仍然不知道 GPU 的利用率如何。
PAPI 似乎能够获得指令计数,但它不能与其他浮点运算不同。我还没有尝试过其他两种工具(TAU 和 Vampir),但我怀疑它们能否满足我的需求。
所以我想知道是否有可能获得 GPU 的整体利用率信息?如果不是,估计它的最佳选择是什么?我这样做的目的是为在 GPU 上运行的多个作业找到更好的时间表。
我不确定我是否已经足够清楚地描述了我的问题,所以请让我知道是否可以添加任何内容以获得更好的描述。
非常感谢!