[PATCH 0/7 libgomp,amdgcn] AMD GCN Offloading Support
Andrew Stubbs
ams@codesourcery.com
Wed Nov 13 13:05:00 GMT 2019
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
>
More information about the Gcc-patches
mailing list