Refactor RO backend data structures (#49)

- Remove hdp and ipc pointers from BlockHandle, align RO stats with RO contexts

- Add run commands for `rocshmem_g` and `rocshmem_p` API tests in driver.sh

- Allocate rocshmem API return buffers based on number of device contexts.

- Associate status flag address with blocking calls and remove threadId dependency
   - Associated the status flag address with each blocking call request to notify the GPU thread.
   - Removed dependency on threadId for determining the appropriate status flag index.

- Move status flag buffer allocation to backend.

- Initialize allocated memeory to zero
This commit is contained in:
Avinash Kethineedi
2025-03-14 10:49:44 -05:00
committed by GitHub
orang tua 96424a59a8
melakukan df4ad2c04d
16 mengubah file dengan 389 tambahan dan 357 penghapusan
+4 -5
Melihat File
@@ -33,12 +33,11 @@ Queue::Queue() {
}
}
Queue::Queue(size_t max_queues, size_t max_wg_size, size_t queue_size)
Queue::Queue(size_t max_queues, size_t queue_size)
: max_queues_{max_queues},
max_wg_size_{max_wg_size},
queue_size_{queue_size},
queue_proxy_{max_queues, queue_size},
queue_desc_proxy_{max_queues, max_wg_size} {
queue_desc_proxy_{max_queues} {
gpu_queue = true;
char *value{nullptr};
@@ -101,8 +100,8 @@ void Queue::sfence_flush_hdp() {
}
}
void Queue::notify(int blockId, int threadId) {
descriptor(blockId)->status[threadId] = 1;
void Queue::notify(volatile char* status) {
*status = 1;
}
uint64_t Queue::size() {