diff options
author | Julian Brown <julian@codesourcery.com> | 2021-03-02 04:20:13 -0800 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2021-08-09 15:08:44 +0200 |
commit | c408512e1f7ca07e07794dc13fd6dfd9d2d7e998 (patch) | |
tree | d0be85d6571a5fbef57922c264ede5ebae87ddc9 /libgomp/plugin | |
parent | e2a58ed6dc5293602d0d168475109caa81ad0f0d (diff) | |
download | gcc-c408512e1f7ca07e07794dc13fd6dfd9d2d7e998.zip gcc-c408512e1f7ca07e07794dc13fd6dfd9d2d7e998.tar.gz gcc-c408512e1f7ca07e07794dc13fd6dfd9d2d7e998.tar.bz2 |
amdgcn: Enable OpenACC worker partitioning for AMD GCN
gcc/
* config/gcn/gcn.c (gcn_init_builtins): Override decls for
BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START,
BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER.
(gcn_goacc_validate_dims): Turn on worker partitioning unconditionally.
(gcn_fork_join): Update comment.
* config/gcn/gcn.opt (flag_worker_partitioning): Remove.
(macc_experimental_workers): Remove unused option.
libgomp/
* plugin/plugin-gcn.c (gcn_exec): Change default number of workers to
16.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c
[acc_device_radeon]: Update.
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c
[ACC_DEVICE_TYPE_radeon]: Likewise.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c
[acc_device_radeon]: Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c
[ACC_DEVICE_TYPE_radeon]: Likewise.
* testsuite/libgomp.oacc-fortran/optional-reduction.f90: XFAIL for
'openacc_radeon_accel_selected' and '-O0'.
* testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
Diffstat (limited to 'libgomp/plugin')
-rw-r--r-- | libgomp/plugin/plugin-gcn.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c index f26d736..9e7377c 100644 --- a/libgomp/plugin/plugin-gcn.c +++ b/libgomp/plugin/plugin-gcn.c @@ -3038,8 +3038,7 @@ gcn_exec (struct kernel_info *kernel, size_t mapnum, void **hostaddrs, 64 gangs matches a typical Fiji device. */ if (dims[0] == 0) dims[0] = get_cu_count (kernel->agent); /* Gangs. */ - /* NOTE: Until support for middle-end worker partitioning is merged, force 'num_workers (1)'. */ - if (/*TODO dims[1] == 0*/ true) dims[1] = 1; /* Workers. */ + if (dims[1] == 0) dims[1] = 16; /* Workers. */ /* The incoming dimensions are expressed in terms of gangs, workers, and vectors. The HSA dimensions are expressed in terms of "work-items", |