问题
I have a kernel that is performing poorly on CC 3.0 (Kepler) as opposed to CC 2.0 (Fermi). In the Nsight profiler, the Warp Issue Efficiency chart is showing that 60% of the time, there were no eligible warps and the Issue Stall Reasons chart is showing that 60% of these are due to "Other".
I'm wondering what the Other issue stall reasons are and what I might do to reduce them.
CUDA 5.0. / Nsight 3.0. RC / CC 3.0.
回答1:
In Nsight Visual Studio Edition 3.0 CUDA Profiler the Issue Efficiency displays a pie chart of the warp stall reasons. The stall reasons are Instruction Fetch, Execution Dependency, Data Requests, Texture, Synchronization, and Other.
For Compute Capability 3.* devices the Other category is the percentage of time that active warps are stalled due to the following reasons:
- execution unit is busy (reduce use of low throughput integer operations)
- register bank conflicts (compiler issue that can sometimes be made worst by heavy use of vector data types)
- too few warps per scheduler
For Compute Capability 5.* and 6.* devices the Other category is the percentage of time that active warps are stalled due to the following reasons:
- register bank conflicts (compiler issue that can sometimes be made worst by heavy use of vector data types)
- warps waiting to resolve branches
- warps that are lower priority and are not currently being considered for scheduling
For 5.* and 6.*, especially gp100, the last reason can be very high (~75%) if the kernel reaches 32 warps per warp scheduler.
These stalls reasons are grouped into the other category as it is hard to identify actions that a developer can taken to resolve these issues.
来源:https://stackoverflow.com/questions/14887807/what-are-other-issue-stall-reasons-displayed-by-the-nsight-profiler