This patch series contains fixes for various problems with async support
for OpenACC at present:

 - Asynchonous host-to-device copies invoked from within libgomp
   (target.c) could copy bad data to the target -- and the workaround
   for that currently used in the AMD GCN target plugin could lead to
   a different problem (a race condition).

 - The OpenACC profiling-interface implementation did not measure
   asynchronous operations properly.

 - Several test cases misuse OpenACC asynchronous support (more race
   conditions).

Further comments on individual patches. Tested with offloading to AMD
GCN. OK for mainline?

Thanks,

Julian

Julian Brown (4):
  openacc: Async fix for lib-94 testcase
  openacc: Fix async bugs in several OpenACC test cases
  openacc: Fix asynchronous host-to-device copies in libgomp runtime
  openacc: Profiling-interface fixes for asynchronous operations

 libgomp/libgomp.h                             |   2 +-
 libgomp/oacc-host.c                           |   5 +-
 libgomp/oacc-mem.c                            |  36 +++-
 libgomp/oacc-parallel.c                       | 190 ++++++++++++++----
 libgomp/plugin/plugin-gcn.c                   |  20 +-
 libgomp/target.c                              | 111 ++++++----
 .../acc_prof-init-1.c                         |   5 +-
 .../acc_prof-parallel-1.c                     |  64 ++----
 .../libgomp.oacc-c-c++-common/deep-copy-10.c  |  14 +-
 .../libgomp.oacc-c-c++-common/lib-94.c        |   4 +-
 .../libgomp.oacc-fortran/lib-16-2.f90         |   5 +
 .../testsuite/libgomp.oacc-fortran/lib-16.f90 |   5 +
 12 files changed, 289 insertions(+), 172 deletions(-)

-- 
2.29.2

Reply via email to