Skip to content

Conversation

@dmpots
Copy link
Collaborator

@dmpots dmpots commented Nov 20, 2025

This commit enables the amd gpu process to read from different address spaces. We the following address spaces:

  • generic - flat address space
  • region - gds address space (not supported on MI300/MI350)
  • local - threadgroup shared memory address space
  • private_lane - thread local address space
  • private_wave - wave local address space

These address spaces correspond to address spaces exposed for dwarf expressions.

In order to read from the private_lane address space we need to keep the lane as part of the ThreadAMDGPU object. This is a straightforward modification to the existing code that creates the per-lane threads.

Tests were added to exercise each of the exposed address spaces.

This commit enables the amd gpu process to read from different address
spaces. We the following address spaces:

  * global - default address space
  * generic - flat address space
  * region - gds address space (not supported on MI300/MI350)
  * local - local (shared memory) address space
  * private_lane - thread local address space
  * private_wave - wave local address space

These address spaces correspond to address spaces exposed for dwarf
expressions.

In order to read from the private_lane address space we need to keep the
lane as part of the ThreadAMDGPU object. This is a straightforward
modification to the existing code that creates the per-lane threads.

Tests were added to exercise each of the exposed address spaces.
  - Use enum class for address spaces
  - Get rid of global address space
@dmpots dmpots merged commit 7442326 into clayborg:llvm-server-plugins Nov 26, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants