Понимание метрики 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 не активен.

Другие вопросы по тегам