Analyzing the bank conflicts in my kernel

I’m profiling a kernel using Nsight Compute, here is the overall results:


In my understanding, these 3 warnings indicate there are bank conflicts in the kernel. And this is the profiled memory table

However, when I switched into the source page, I couldn’t find out specifically where the bank conflicts are.
there are four line of code related with shared memory:
sA write

sB writes

sA reads

sB reads

“sA writes” and “sB writes” have L1 Conflicts Shared N-way 16 and 2, does that mean there are 16-way and 2-way bank conflicts? but why the L1 Wavefronts Shared equals L1 Wavefronts Ideal?
“sA reads” has no L1 Conflicts Shared N-way and “sB reads” has L1 Conflicts Shared N-way 1, does that mean they are bank conflicts free?

You want to check the bank conflicts against the L1 Wavefronts Shared Excessive instruction-level metric on the Source page, as mentioned in this post. If this metric has any non-zero values on the Source page, that is where the bank conflicts are originating from. You can select the metric for navigation and use the buttons on the top to jump to the row with the highest, lowest, etc. value.

The values shown in your screenshot snippets don’t immediately make sense to me, but it’s not possible to debug this further without the actual report. You could check on your end if the data shown in the SASS view of the Source page for the SASS instructions correlated with these high-level source instructions are more consistent.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.