从Nvprof和GPGPUsim了解IPC指标

时间:2018-07-13 01:34:13

标签: cuda gpu nvprof

一个Pascal SM每个SM有4个调度程序,当我们得到3个IPC时,这是否意味着SM在一个周期内调度3条指令? 另外,NVPROF是否会考虑该内核的所有SM的IPC平均值并进行报告?

如果一个SM的IPC为3,那么具有2 SM的GPU应该给我们的IPC为6,对吗?

此外,我正在使用名为GPGPU sim的模拟器,该模拟器报告的IPC范围更大(80-120) 我以为他们正在计算每个内核的IPC,并将度量标准缩放到整个模拟GPU,但是我不确定。

有人可以验证IPC指标吗?

1 个答案:

答案 0 :(得分:3)

NVPROF ipc指标的计算方式为SUM(sm_inst_executed)/ SUM(sm_active_cycles)

这将得出单个SM的平均IPC。 Maxwell / Pascal SM的最大SM IPC为6。Volta/ Turning SM的最大SM IPC为4。

sm_inst_exected-在必须完成指令的点(由于推测执行而无法回滚)计算的已执行翘曲指令的数量。完全根据断言进行计数。

sm_active_cycles-SM至少具有1次活动/驻留扭曲的循环次数。

NVIDIA Perfworks提供以下指标:

sm [sp] __ inst_executed_ {avg,sum} 每个 {活动,已过去} _cycle。

_sum变量是总IPC(最大值为SM_COUNT * SM_MAX_IPC) _avg变量是平均IPC(SUM(sm__inst_executed)/ SUM(sm __ {活动,已过去} _cycle)) elapsed_cycles变体包括SM无效的周期。