Почему я не получаю thread_inst_executed

Когда я перечисляю показатели nvprof с помощью

nvprof --query-events

Я понимаю:

thread_inst_executed: количество инструкций, выполненных активными потоками. Для каждой инструкции он увеличивается на количество потоков, включая потоки с предикативным отключением, которые выполняют инструкцию. Он не включает повторы.

Я хотел бы использовать эту метрику, поэтому я собираю метрики, используя:

nvprof --csv --metrics thread_inst_executed,inst_executed,inst_executed_global_loads,inst_executed_global_stores,inst_executed_local_loads,inst_executed_local_stores,inst_executed_shared_loads,inst_executed_shared_stores,gld_transactions,gst_transactions,local_load_transactions,local_store_transactions,shared_load_transactions,shared_store_transactions,l2_read_transactions,l2_write_transactions,dram_read_transactions,dram_write_transactions,sysmem_read_transactions,sysmem_write_transactions ./my_program my arguments

На выходе есть все метрики, которые я просил... кроме thread_inst_executed. Почему его нет? Как я могу это получить?


person Richard    schedule 30.07.2020    source источник
comment
потому что события и метрики — это не одно и то же. С одной стороны, вы запрашивали события. С другой стороны, вы просили метрики, но указали название события. Если вы действительно хотите получить список показателей nvprof, вам следует сделать --query-metrics, а не --query-events docs.nvidia.com/cuda/profiler-users-guide/   -  person Robert Crovella    schedule 30.07.2020
comment
@RobertCrovella: Это работает для меня, если вы хотите написать это как ответ.   -  person Richard    schedule 30.07.2020
comment
@Richard: не стесняйтесь добавлять свой ответ   -  person talonmies    schedule 31.07.2020


Ответы (1)


Когда я перечисляю показатели nvprof с помощью

nvprof --query-события

Это непоследовательное использование (выделение добавлено).

При использовании nvprof (или nvvp) события и метрики представляют собой не одно и то же.

Чтобы запросить события, вы должны использовать:

--query-events

Чтобы запросить метрики, вы должны использовать:

--query-metrics

Чтобы профилировать, запрашивая измерение события, вы должны использовать

--events name_of_event,...

Чтобы профилировать, запрашивая метрическое измерение, вы должны использовать

--metrics name_of_metric,...

Если вы сделаете что-то вроде этого:

--metrics name_of_event,...

or

--events name_of_metric,...

Я не знаю, что такое поведение, но я бы не ожидал, что оно будет работать должным образом.

person Robert Crovella    schedule 31.07.2020
comment
Поведение заключалось в том, что нераспознанная метрика молча удалялась. Вы можете указать как метрики, так и события в одном и том же вызове nvprof, что я и сделал. Спасибо за вашу помощь! - person Richard; 31.07.2020