一个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指标吗?
答案 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无效的周期。