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


Reply via email to