Контроль эффективности потока - PullRequest
0 голосов
/ 11 апреля 2019

Как указано в руководстве "Статистика филиала" , существует два показателя: эффективность филиала и эффективность потока управления.

Первый имеет аппаратный счетчик branch_efficiency. Тем не менее, похоже, что для последнего нет прямого аппаратного счетчика. Можно ли найти соотношение выполненных и выданных команд потока управления и использовать его в качестве второго показателя эффективности? Или показатель использования потока управления cf_fu_utilization?

Поскольку эффективность потока управления можно интерпретировать как число потоков, активных для одной инструкции в деформации, я думаю, что warp_execution_efficiency также можно использовать, поскольку в определении указано

Отношение среднего количества активных потоков на деформацию к максимальному количеству потоков на деформацию, поддерживаемое в многопроцессорном компьютере

Любой комментарий по этому поводу?

1 Ответ

2 голосов
/ 12 апреля 2019

Эффективность ветвления и эффективность потока управления являются метриками.Эффективность ветвления может быть собрана в одном psd и показана в соответствии со значениями SM.Эффективность потока управления: smsp__thread_inst_executed / smsp__inst_executed / WARP_SIZE * 100.0.Эти счетчики не могут быть собраны со всех SM за один проход на всем оборудовании, поэтому метрика отображается на диаграмме как среднее значение для всех SM.

При использовании CUPTI / NVPROF аппаратные события:

  • inst_executed: Количество инструкций, выполненных за деформацию.ВНИМАНИЕ: в описании указано «за деформацию».Это должна быть сумма.
  • thread_inst_executed: количество инструкций, выполненных активными потоками.Для каждой инструкции она увеличивается на количество потоков, в том числе предикатных потоков, которые выполняют инструкцию.Он не включает в себя повторы.
  • not_predicated_off_thread_inst_executed: Количество выполненных инструкций потока, которые не имеют предикатов

Эти события могут использоваться для вычисленияЭто может быть преобразовано в% с помощью / 32 x 100.0.

Компилятор будет использовать предикацию вместо ветви, если тело условия мало (несколько инструкций).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...