These patches are now all committed. I've adjusted the changelogs to
list all the proper authors (apologies if I missed anyone).
Thank you for the quick reviews, Jakub. :-)
Andrew
On 12/11/2019 13:29, Andrew Stubbs wrote:
Hi all,
This patch series contributes initial OpenMP and OpenACC support for AMD
GCN GPUs.
The test results are not yet perfect, but there are many more passes than
failures, so this is a good starting point. The rest of the issues can
be addressed as bugs during stage 3.
I have another, unfinished, patch to massage the testsuite itself. I'll
post this shortly, once I've finished checking the forward port is
appropriate.
This series implements only single-worker support for OpenACC. Julian
Brown may post the multiple-worker support soon, if it isn't too
difficult to forward-port. Otherwise that will have to wait for GCC 11.
Andrew
Andrew Stubbs (7):
Move generic libgomp files from nvptx to accel
GCN mkoffload
Add device number to GOMP_OFFLOAD_openacc_async_construct
GCN libgomp port
Optimize GCN OpenMP malloc performance
Use a single worker for OpenACC on AMD GCN
GCN Libgomp Plugin
gcc/config/gcn/gcn.c | 4 +-
gcc/config/gcn/gcn.opt | 2 +-
gcc/config/gcn/mkoffload.c | 694 +++
gcc/config/gcn/offload.h | 35 +
include/gomp-constants.h | 2 +
libgomp/Makefile.am | 2 +-
libgomp/Makefile.in | 61 +-
libgomp/config.h.in | 3 +
.../config/{nvptx => accel}/libgomp-plugin.c | 0
libgomp/config/{nvptx => accel}/lock.c | 0
libgomp/config/{nvptx => accel}/mutex.c | 0
libgomp/config/{nvptx => accel}/mutex.h | 0
libgomp/config/{nvptx => accel}/oacc-async.c | 0
libgomp/config/{nvptx => accel}/oacc-cuda.c | 0
libgomp/config/{nvptx => accel}/oacc-host.c | 0
libgomp/config/{nvptx => accel}/oacc-init.c | 0
libgomp/config/{nvptx => accel}/oacc-mem.c | 0
libgomp/config/{nvptx => accel}/oacc-plugin.c | 0
libgomp/config/{nvptx => accel}/omp-lock.h | 0
libgomp/config/{nvptx => accel}/openacc.f90 | 1 +
libgomp/config/{nvptx => accel}/pool.h | 0
libgomp/config/{nvptx => accel}/proc.c | 0
libgomp/config/{nvptx => accel}/ptrlock.c | 0
libgomp/config/{nvptx => accel}/ptrlock.h | 0
libgomp/config/{nvptx => accel}/sem.c | 0
libgomp/config/{nvptx => accel}/sem.h | 0
.../{nvptx => accel}/thread-stacksize.h | 0
libgomp/config/gcn/affinity-fmt.c | 51 +
libgomp/config/gcn/bar.c | 232 +
libgomp/config/gcn/bar.h | 168 +
libgomp/config/gcn/doacross.h | 58 +
libgomp/config/gcn/icv-device.c | 72 +
libgomp/config/gcn/oacc-target.c | 31 +
libgomp/config/gcn/simple-bar.h | 61 +
libgomp/config/gcn/target.c | 67 +
libgomp/config/gcn/task.c | 39 +
libgomp/config/gcn/team.c | 212 +
libgomp/config/gcn/time.c | 52 +
libgomp/configure | 61 +-
libgomp/configure.ac | 2 +-
libgomp/configure.tgt | 6 +-
libgomp/libgomp-plugin.h | 5 +-
libgomp/libgomp.h | 74 +
libgomp/oacc-async.c | 3 +-
libgomp/oacc-host.c | 2 +-
libgomp/oacc-int.h | 9 +-
libgomp/oacc-target.c | 1 +
libgomp/openacc.f90 | 1 +
libgomp/openacc.h | 1 +
libgomp/plugin/Makefrag.am | 14 +
libgomp/plugin/configfrag.ac | 35 +
libgomp/plugin/plugin-gcn.c | 3985 +++++++++++++++++
libgomp/plugin/plugin-nvptx.c | 2 +-
libgomp/team.c | 15 +-
libgomp/work.c | 4 +-
55 files changed, 6035 insertions(+), 32 deletions(-)
create mode 100644 gcc/config/gcn/mkoffload.c
create mode 100644 gcc/config/gcn/offload.h
rename libgomp/config/{nvptx => accel}/libgomp-plugin.c (100%)
rename libgomp/config/{nvptx => accel}/lock.c (100%)
rename libgomp/config/{nvptx => accel}/mutex.c (100%)
rename libgomp/config/{nvptx => accel}/mutex.h (100%)
rename libgomp/config/{nvptx => accel}/oacc-async.c (100%)
rename libgomp/config/{nvptx => accel}/oacc-cuda.c (100%)
rename libgomp/config/{nvptx => accel}/oacc-host.c (100%)
rename libgomp/config/{nvptx => accel}/oacc-init.c (100%)
rename libgomp/config/{nvptx => accel}/oacc-mem.c (100%)
rename libgomp/config/{nvptx => accel}/oacc-plugin.c (100%)
rename libgomp/config/{nvptx => accel}/omp-lock.h (100%)
rename libgomp/config/{nvptx => accel}/openacc.f90 (98%)
rename libgomp/config/{nvptx => accel}/pool.h (100%)
rename libgomp/config/{nvptx => accel}/proc.c (100%)
rename libgomp/config/{nvptx => accel}/ptrlock.c (100%)
rename libgomp/config/{nvptx => accel}/ptrlock.h (100%)
rename libgomp/config/{nvptx => accel}/sem.c (100%)
rename libgomp/config/{nvptx => accel}/sem.h (100%)
rename libgomp/config/{nvptx => accel}/thread-stacksize.h (100%)
create mode 100644 libgomp/config/gcn/affinity-fmt.c
create mode 100644 libgomp/config/gcn/bar.c
create mode 100644 libgomp/config/gcn/bar.h
create mode 100644 libgomp/config/gcn/doacross.h
create mode 100644 libgomp/config/gcn/icv-device.c
create mode 100644 libgomp/config/gcn/oacc-target.c
create mode 100644 libgomp/config/gcn/simple-bar.h
create mode 100644 libgomp/config/gcn/target.c
create mode 100644 libgomp/config/gcn/task.c
create mode 100644 libgomp/config/gcn/team.c
create mode 100644 libgomp/config/gcn/time.c
create mode 100644 libgomp/oacc-target.c
create mode 100644 libgomp/plugin/plugin-gcn.c