Message ID | cover.1573560401.git.ams@codesourcery.com |
---|---|
Headers | show |
Series | AMD GCN Offloading Support | expand |
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 >