Reputation:
In NVIDIA Nsight Visual Studio Edition 4.1 RC1, warp issue stall reasons are divided into 9 types instead of 6 in the 4.0 version. From the look of it, "Data Requests" was removed, "Memory Throttle", "Memory Dependency", "Constant Miss" were added.
However, Issue Stall Reasons section in the NVIDIA Nsight Visual Studio Edition 4.1 User Guide (the same one you are being redirected to by clicking on the blue icon with white question mark on the top-right of Issue Stall Reasons UI) has not been updated from the same section in the NVIDIA Nsight Visual Studio Edition 4.0 User Guide.
I'm wondering what the new issue stall reasons are, and what are some of the ways to reduce them.
4.1:
4.0:
Upvotes: 1
Views: 1793
Reputation: 11509
In Nsight 4.1 the following reasons were removed:
Data Request was removed. In Nsight <= 4.0 the data request was asserted when a warp was unable to issue a data request.
In Nsight 4.1 the following reasons were added:
Memory Throttle - A warp asserts a memory throttle stall when it is blocked from issuing an instruction due to a lack of resources in the memory data path. If this reason is high try to resolve memory coalescing issues (data divergence) that leads to instruction replays or try aggregating memory accesses into vector accesses. On CC5.x devices this reason can also occur at the end of a kernel if threads issues several memory stores then exit.
Memory Dependency - A warp asserts a memory dependency stall when its next instruction cannot be issued due to a dependency on a memory or texture dependency. If this reason is high then try to (a) improve memory coalescing, (b) improve memory-level parallelism, (c) move frequently accessed data closer to SM (e.g. into shared memory), (d) try computing data instead of loading data, or (e) on SM3.5 try using LDG.
Constant Miss - A warp asserts a constant miss stall if the warps attempts to access a constant and the constant is not in the cache. If this reason is high try to group constants used by the kernel into the same area of the constant memory (move declaration close to each other), try moving constants to global memory, or try computing constants.
Pipe Busy - A warp asserts pipe busy stall if the data path required for the warps next instruction is busy and the warp cannot issue. If this reason is high look at the Pipe Utilization experiment graphs and try to reduce any pipe with high utilization. Avoiding low throughput instructions may also help.
Upvotes: 3