Skip to content

Commit 980eb50

Browse files
authored
Merge pull request #12341 from edgargabriel/topic/accel-rocm-minor-fixes
accelerator/rocm: some minor fixes
2 parents ede12d6 + afacd60 commit 980eb50

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

Diff for: opal/mca/accelerator/rocm/accelerator_rocm_module.c

+11-7
Original file line numberDiff line numberDiff line change
@@ -120,20 +120,17 @@ static int mca_accelerator_rocm_check_addr (const void *addr, int *dev_id, uint6
120120
#else
121121
if (hipMemoryTypeDevice == srcAttr.memoryType) {
122122
#endif
123-
//We might want to set additional flags in a later iteration.
124-
//*flags |= MCA_ACCELERATOR_FLAGS_HOST_LDSTR;
125-
//*flags |= MCA_ACCELERATOR_FLAGS_HOST_ATOMICS;
126-
/* First access on a device pointer triggers ROCM support lazy initialization. */
127123
opal_accelerator_rocm_lazy_init();
124+
*dev_id = srcAttr.device;
128125
ret = 1;
129126
#if HIP_VERSION >= 50731921
130127
} else if (hipMemoryTypeUnified == srcAttr.type) {
131128
#else
132129
} else if (hipMemoryTypeUnified == srcAttr.memoryType) {
133130
#endif
134131
*flags |= MCA_ACCELERATOR_FLAGS_UNIFIED_MEMORY;
135-
//*flags |= MCA_ACCELERATOR_FLAGS_HOST_LDSTR;
136-
//*flags |= MCA_ACCELERATOR_FLAGS_HOST_ATOMICS;
132+
opal_accelerator_rocm_lazy_init();
133+
*dev_id = srcAttr.device;
137134
ret = 1;
138135
}
139136
}
@@ -530,6 +527,7 @@ static int mca_accelerator_rocm_get_ipc_handle(int dev_id, void *dev_ptr,
530527
OBJ_CONSTRUCT(rocm_handle, opal_accelerator_rocm_ipc_handle_t);
531528
rocm_handle->base.dev_ptr = NULL;
532529

530+
memset(rocm_ipc_handle.reserved, 0, HIP_IPC_HANDLE_SIZE);
533531
hipError_t err = hipIpcGetMemHandle(&rocm_ipc_handle,
534532
(hipDeviceptr_t)dev_ptr);
535533
if (hipSuccess != err) {
@@ -620,6 +618,7 @@ static int mca_accelerator_rocm_get_ipc_event_handle(opal_accelerator_event_t *e
620618
opal_accelerator_rocm_ipc_event_handle_t *rocm_handle = (opal_accelerator_rocm_ipc_event_handle_t *) handle;
621619
OBJ_CONSTRUCT(rocm_handle, opal_accelerator_rocm_ipc_event_handle_t);
622620

621+
memset(rocm_ipc_handle.reserved, 0, HIP_IPC_HANDLE_SIZE);
623622
hipError_t err = hipIpcGetEventHandle(&rocm_ipc_handle,
624623
*((hipEvent_t *)event->event));
625624
if (hipSuccess != err) {
@@ -762,6 +761,11 @@ static int mca_accelerator_rocm_device_can_access_peer(int *access, int dev1, in
762761
return OPAL_ERR_BAD_PARAM;
763762
}
764763

764+
if (dev1 == dev2) {
765+
*access = 1;
766+
return OPAL_SUCCESS;
767+
}
768+
765769
hipError_t err = hipDeviceCanAccessPeer(access, dev1, dev2);
766770
if (hipSuccess != err) {
767771
opal_output_verbose(10, opal_accelerator_base_framework.framework_output,
@@ -777,7 +781,7 @@ static int mca_accelerator_rocm_get_buffer_id(int dev_id, const void *addr, opal
777781
*buf_id = 0;
778782

779783
#if HIP_VERSION >= 50120531
780-
hipError_t result = hipPointerGetAttribute((unsigned long long *)&buf_id, HIP_POINTER_ATTRIBUTE_BUFFER_ID,
784+
hipError_t result = hipPointerGetAttribute((unsigned long long *)buf_id, HIP_POINTER_ATTRIBUTE_BUFFER_ID,
781785
(hipDeviceptr_t)addr);
782786
if (hipSuccess != result) {
783787
opal_output_verbose(10, opal_accelerator_base_framework.framework_output,

0 commit comments

Comments
 (0)