Понимание метрики IPC от Nvprof и GPGPUsim
SM Pascal имеет 4 планировщика на SM, когда мы получаем что-то вроде 3 в качестве IPC, означает ли это 3 инструкции, запланированные SM в цикле? Кроме того, NVPROF учитывает среднее значение IPC всех SM для этого ядра и сообщает об этом?
если один SM имеет IPC 3, то графический процессор с 2 SM должен дать нам IPC 6, верно?
Кроме того, я работаю с симулятором под названием GPGPU sim, который сообщает IPC в более высоких диапазонах (80-120). Я предполагаю, что они рассчитывают IPC на ядро и масштабируют метрику для всего моделируемого GPU, но я не уверен.
Кто-нибудь может проверить метрику IPC?
1 ответ
Показатель ipc NVPROF рассчитывается как SUM(sm_inst_executed) / SUM(sm_active_cycles)
Это приводит к средней IPC одного SM. Максимальные значения IP-адресов SM для Maxwell / Pascal SM равны 6. Максимальные значения SMC для Volta/Turing составляют 4.
sm_inst_executed - количество выполненных инструкций деформации, подсчитанное в момент, когда инструкция должна завершиться (не может быть отменена из-за спекулятивного выполнения). Полностью основанные на инструкции считаются.
sm_active_cycles - Количество циклов, на которых SM имел как минимум 1 активный / резидентный перекос.
NVIDIA Perfworks предоставляет следующие метрики:
sm [sp] __ inst_executed_ {avg, sum}за{активный, прошедший}_цикл.
Вариант _sum - это общий IPC (макс. SM_COUNT * SM_MAX_IPC) Вариант _avg - это средний IPC (SUM(sm__inst_executed) / SUM(sm__{active, elapsed}_cycle)) Вариант elapsed_cycles включает циклы, которые SM не активен.