[Bug c++/102204] New: OpenMP offload map type restriction
xw111luoye at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun Sep 5 03:30:39 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102204
Bug ID: 102204
Summary: OpenMP offload map type restriction
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: xw111luoye at gmail dot com
Target Milestone: ---
With branch devel/omp/gcc-11
I'm getting
/home/yeluo/opt/qmcpack/build_rtx3060_gcc_offload_real/src/config.h:42:29:
error: array section does not have mappable type in ‘map’ clause
42 | #define PRAGMA_OFFLOAD(x) _Pragma(x)
| ^~~~~~~
/home/yeluo/opt/qmcpack/src/Particle/SoaDistanceTableAAOMPTarget.h:84:5: note:
in expansion of macro ‘PRAGMA_OFFLOAD’
84 | PRAGMA_OFFLOAD("omp target enter data map(to : this[:1])")
| ^~~~~~~~~~~~~~
In file included from
/home/yeluo/opt/qmcpack/src/Particle/createDistanceTableAAOMPTarget.cpp:19:
/home/yeluo/opt/qmcpack/src/Particle/SoaDistanceTableAAOMPTarget.h:31:8: note:
type ‘qmcplusplus::SoaDistanceTableAAOMPTarget<double, 3, 41>’ with virtual
members is not mappable
31 | struct SoaDistanceTableAAOMPTarget : public DTD_BConds<T, D, SC>,
public DistanceTableData
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
because SoaDistanceTableAAOMPTarget is a derived class and there is virtual
function overriding.
https://github.com/QMCPACK/qmcpack/blob/1a7af8e589726a91da94e5f6ad8b4e8d9e2acd4d/src/Particle/SoaDistanceTableAAOMPTarget.h#L31
In my case virtual functions are never called in offload region and I map
"this[:1]" for easy access a fixed data set. So I'm expecting just bit wise
copy to the device.
please remove this restriction.
More information about the Gcc-bugs
mailing list