public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 0/7 libgomp,amdgcn] AMD GCN Offloading Support
@ 2019-11-12 13:29 Andrew Stubbs
  2019-11-12 13:29 ` [PATCH 1/7 libgomp,nvptx] Move generic libgomp files from nvptx to accel Andrew Stubbs
                   ` (7 more replies)
  0 siblings, 8 replies; 44+ messages in thread
From: Andrew Stubbs @ 2019-11-12 13:29 UTC (permalink / raw)
  To: gcc-patches

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

-- 
2.20.1

^ permalink raw reply	[flat|nested] 44+ messages in thread

end of thread, other threads:[~2024-03-08 12:42 UTC | newest]

Thread overview: 44+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-12 13:29 [PATCH 0/7 libgomp,amdgcn] AMD GCN Offloading Support Andrew Stubbs
2019-11-12 13:29 ` [PATCH 1/7 libgomp,nvptx] Move generic libgomp files from nvptx to accel Andrew Stubbs
2019-11-12 13:43   ` Jakub Jelinek
2019-11-12 13:29 ` [PATCH 2/7 amdgcn] GCN mkoffload Andrew Stubbs
2019-11-12 13:29 ` [PATCH 3/7 libgomp,nvptx] Add device number to GOMP_OFFLOAD_openacc_async_construct Andrew Stubbs
2019-11-12 13:46   ` Jakub Jelinek
2019-11-12 13:30 ` [PATCH 4/7 libgomp,amdgcn] GCN libgomp port Andrew Stubbs
2019-11-12 13:48   ` Jakub Jelinek
2019-11-12 14:21     ` Andrew Stubbs
2019-12-02 14:43   ` Thomas Schwinge
2019-12-02 14:50     ` Julian Brown
2019-12-03  9:33       ` Which OpenACC 'acc_device_t' to use for AMD GPU offloading (was: [PATCH 4/7 libgomp,amdgcn] GCN libgomp port) Thomas Schwinge
2019-12-03 14:20         ` Julian Brown
2019-12-03 14:42           ` Which OpenACC 'acc_device_t' to use for AMD GPU offloading Thomas Schwinge
2019-12-03 15:00             ` Tobias Burnus
2019-12-03 13:13     ` [PATCH 4/7 libgomp,amdgcn] GCN libgomp port Andrew Stubbs
2019-12-03 14:07       ` "gcn" vs. "amdgcn" etc. (was: [PATCH 4/7 libgomp,amdgcn] GCN libgomp port) Thomas Schwinge
2019-12-03 15:53         ` Julian Brown
2020-01-17 19:20     ` [committed, amdgcn/openacc] Rename acc_device_gcn to acc_device_radeon Andrew Stubbs
2020-04-21 12:24       ` [AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE' (was: [committed, amdgcn/openacc] Rename acc_device_gcn to acc_device_radeon) Thomas Schwinge
2020-04-23 16:27         ` [AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE' Andrew Stubbs
2020-04-29  8:08           ` Thomas Schwinge
2019-12-16 22:28   ` [PATCH 4/7 libgomp,amdgcn] GCN libgomp port Thomas Schwinge
2019-11-12 13:30 ` [PATCH 7/7 libgomp,amdgcn] GCN Libgomp Plugin Andrew Stubbs
2019-11-12 14:11   ` Jakub Jelinek
2019-11-12 14:42     ` Andrew Stubbs
2021-01-14 19:19   ` [gcn offloading] Only supported in 64-bit configurations (was: [PATCH 7/7 libgomp,amdgcn] GCN Libgomp Plugin) Thomas Schwinge
2024-03-07 11:29   ` GCN: Even with 'GCN_SUPPRESS_HOST_FALLBACK' set, failure to 'init_hsa_runtime_functions' is not fatal " Thomas Schwinge
2024-03-07 11:38     ` GCN: Even with 'GCN_SUPPRESS_HOST_FALLBACK' set, failure to 'init_hsa_runtime_functions' is not fatal Andrew Stubbs
2024-03-07 13:37       ` Thomas Schwinge
2024-03-07 13:47         ` Andrew Stubbs
2024-03-07 11:43     ` Tobias Burnus
2024-03-07 13:37       ` Thomas Schwinge
2024-03-07 14:07         ` Tobias Burnus
2024-03-08 10:21           ` Thomas Schwinge
2024-03-08 10:16         ` GCN: The original meaning of 'GCN_SUPPRESS_HOST_FALLBACK' isn't applicable (non-shared memory system) (was: GCN: Even with 'GCN_SUPPRESS_HOST_FALLBACK' set, failure to 'init_hsa_runtime_functions' is not fatal) Thomas Schwinge
2024-03-08 12:42           ` GCN: The original meaning of 'GCN_SUPPRESS_HOST_FALLBACK' isn't applicable (non-shared memory system) Andrew Stubbs
2019-11-12 13:30 ` [PATCH 5/7 libgomp,amdgcn] Optimize GCN OpenMP malloc performance Andrew Stubbs
2019-11-12 14:02   ` Jakub Jelinek
2019-11-12 17:54     ` Andrew Stubbs
2019-11-12 22:51       ` Jakub Jelinek
2019-11-12 13:31 ` [PATCH 6/7 amdgcn] Use a single worker for OpenACC on AMD GCN Andrew Stubbs
2021-06-08 10:07   ` Thomas Schwinge
2019-11-13 13:05 ` [PATCH 0/7 libgomp,amdgcn] AMD GCN Offloading Support Andrew Stubbs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).