Update atomic functional tests (#262)

* feat: implement function to return number of blocks in grid.

* test: update atomics functional tests
  - Standard atomic tests: `atomic_add`, `atomic_inc`, `fetch_atomic_add`, `fetch_atomic_inc`, and `fetch_compare_and_swap`
  - Bitwise atomic tests:    `atomic_and`, `atomic_or`, `atomic_xor`, fetch_atomic_and`, `fetch_atomic_or`, and `fetch_atomic_xor`
  - Extended atomic tests: `atomic_fetch`, `atomic_set`, and `atomic_swap`

* Added two different address modes for atomics.
* Added all supported data types for atomics tests.


[ROCm/rocshmem commit: 0a4f8a83b9]
This commit is contained in:
Avinash Kethineedi
2025-10-06 11:50:50 -04:00
committed by GitHub
parent ac13b22edc
commit e31b4d42e5
9 changed files with 676 additions and 265 deletions
@@ -39,6 +39,14 @@ enum TeamSplitType {
ROCSHMEM_TEST_TEAM_ODDEVEN, // odd-even splitting
};
/*-----------------------------------------
* Atomics Addressing modes (contention model)
*-----------------------------------------*/
enum class AddrMode : int {
PerGrid, // all WGs -> same address
PerBlock, // each WG -> its own address (default)
};
class TesterArguments {
public:
TesterArguments(int argc, char *argv[]);
@@ -69,6 +77,7 @@ public:
unsigned coal_coef = 64;
unsigned op_type = 0;
unsigned shmem_context = rocshmem::ROCSHMEM_CTX_WG_PRIVATE;
AddrMode addr_mode = AddrMode::PerBlock;
/**
* Arguments obtained from rocshmem