About Agent, Wave, and Device Address Space Threads
An understanding of the differences between agent, wave, and device address space threads is beneficial when you are debugging using wave-thread mode.
Agent Thread
An agent thread has a debugger thread ID and:
-
Is bound to the set of waves executing on a GPU agent via the debug-API-assigned wave IDs
-
Is an address space object that models the agent’s memory
-
Is a debugger thread object to model the execution state of the agent
-
Has an agent focus that identifies a focus wave and lane running on that agent
Wave Thread
A wave thread has a debugger thread ID and:
-
Is bound to a GPU wave via the debug-API-assigned wave ID
-
Has a shared reference to a device address space object to model the agent’s memory
-
Is a debugger thread object to model the execution state of the wave to which it is bound
-
Has a wave focus that identifies a focus lane in that wave
Device Address Space Thread
A device address space thread (when in wave-thread mode) has a debugger thread ID and:
-
Is an address space object that is shared by the wave threads on an agent
-
Is hidden by default as it’s largely an implementation artifact, except for unshared breakpoints
-
Has no meaningful execution state because it is not bound to any specific wave