predicated-on metric unexpectedly high

Viewed 70

I am profiling a kernel (nsight 2021.2.1, compute capability 8.3, cuda 11.4) and looking at the metric Avg thread executed for a source line. It was my understanding that this value can be between 0 and 32. However, in my profiling, it is much higher.

image

Clearly I have a poor understanding of the predicated-on instructions metric and therefore avg thread executed means. How should I interpret this value, and can I draw any conclusions from it?

1 Answers

This is a bug in the Source View. The Source View columns are rolled up from assembly instructions to source lines. This works for Instructions Executed and Predicated-On Thread Instructions Executed but not for Avg. Thread Executed.

The correct value is

Predicated-On Thread Instructions Executed / Instructions Executed = Avg Thread Executed
91,714,560,000 / 2,866,080,000 = 32

If you click on the Source Line and look at the correlated assembly code in the SASS view you will likely find 7 instructions.

224 / 32 = 7.
Related