[Bug libgomp/101581] New: [OpenMP] omp_target_memcpy – support inter-device memcpy
burnus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jul 22 14:25:32 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101581
Bug ID: 101581
Summary: [OpenMP] omp_target_memcpy – support inter-device
memcpy
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Keywords: openmp
Severity: normal
Priority: P3
Component: libgomp
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
Target Milestone: ---
The current omp_target_memcpy implementation handles:
host/shared-mem device → host/shared-mem device
if (src_devicep == NULL && dst_devicep == NULL)
host/shared-mem device → non-shared-mem device
if (src_devicep == NULL)
non-shared-mem device → host/shared-mem device
if (dst_devicep == NULL)
device → same device
if (src_devicep == dst_devicep)
but it fails with
return EINVAL;
when attempting to copy between two devices which don't have
GOMP_OFFLOAD_CAP_SHARED_MEM.
Expected: I do not see anything in the OpenMP spec which disallows copying
between non-shared-mem devices. Thus, I think it should work. This probably
requires device -> host -> device copying with a temporary on the host.
Likewise for omp_target_memcpy_rect
More information about the Gcc-bugs
mailing list