add support for GPUs using wavefront size of 32 (#285)

* add gfx1100 support

Add support for Radeon 7900 GPUs (RX and PRO), and 7800 PRO.

I was contemplating to add gfx1101 and gfx1102 GPUs as well, but those are the lower end models that are more unlikely to be used for compute intensive jobs. In addition, I do not have access to them to test the support.

* update WF_SIZe for different options

Radeon systems use a WarpSize of 32, unlike current Instinct systems,
which use a warp size of 64. For the device side, a gfx specific ifdef
is sufficient. For the host side, we need to query the device
properties.

* adjust functional tests to wf_size of 32

* update unit tests to handle wf_size of 32

* address reviewer comments

[ROCm/rocshmem commit: d0c2845031]
This commit is contained in:
Edgar Gabriel
2025-10-22 16:04:58 -05:00
committed by GitHub
parent b771a26916
commit d37af80d7e
19 changed files with 192 additions and 56 deletions
+5 -1
View File
@@ -28,6 +28,7 @@
#include "backend_gda.hpp"
#include "constants.hpp"
#include "util.hpp"
namespace rocshmem {
@@ -59,7 +60,10 @@ QueuePair::QueuePair(struct ibv_pd* pd, int gda_provider) {
fetching_atomic_lkey = mr_fetching_atomic->lkey;
}
for(int i{0}; i < FETCHING_ATOMIC_CNT; i+=WF_SIZE) {
int deviceId;
CHECK_HIP(hipGetDevice(&deviceId));
int wf_size = get_wf_size(deviceId);
for(int i{0}; i < FETCHING_ATOMIC_CNT; i+=wf_size) {
fetching_atomic_freelist->push_back(fetching_atomic + i);
}