Hello

The libgomp.oacc-c++/privatized-ref-[23].C testcases request 64 workers in a parallel section, but Nvidia only supports a maximum of 32 workers, and GCN a maximum of 16. The worker numbers are overridden by the compiler with a warning message printed, which causes test failures on Nvidia. On GCN, the warning message is not printed by default (enabled by -foffload=-Wopenacc-dims).

This patch fixes this by requesting 16 workers, which is acceptable on both Nvidia and AMD GCN. Committed on the OG10 branch as obvious.

Kwok
commit 15967a2016248eb04ef493af4e4889ceef9890b3
Author: Kwok Cheung Yeung <k...@codesourcery.com>
Date:   Wed Sep 16 03:18:54 2020 -0700

    Fix warning messages in libgomp.oacc-c++/privatized-ref-[23].C testcases
    
    More workers are requested than are supported, resulting in warning messages
    as the number of workers is overridden.
    
    2020-09-16  Kwok Cheung Yeung  <k...@codesourcery.com>
    
        libgomp/
        * testsuite/libgomp.oacc-c++/privatized-ref-2.C (workers, vectors):
        Reduce number of workers to 16.
        * testsuite/libgomp.oacc-c++/privatized-ref-3.C (workers, vectors):
        Likewise.

diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp
index 4f56f55..6e313aa 100644
--- a/libgomp/ChangeLog.omp
+++ b/libgomp/ChangeLog.omp
@@ -1,3 +1,10 @@
+2020-09-16  Kwok Cheung Yeung  <k...@codesourcery.com>
+
+       * testsuite/libgomp.oacc-c++/privatized-ref-2.C (workers, vectors):
+       Reduce number of workers to 16.
+       * testsuite/libgomp.oacc-c++/privatized-ref-3.C (workers, vectors):
+       Likewise.
+
 2020-09-15  Tobias Burnus  <tob...@codesourcery.com>
 
        Backport from mainline
diff --git a/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C 
b/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
index 3884f16..052ccc5 100644
--- a/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
+++ b/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-2.C
@@ -7,7 +7,7 @@ void workers (void)
   double res[65536];
   int i;
 
-#pragma acc parallel copyout(res) num_gangs(64) num_workers(64)
+#pragma acc parallel copyout(res) num_gangs(64) num_workers(16)
   {
     int i, j;
 #pragma acc loop gang
@@ -34,7 +34,7 @@ void vectors (void)
   double res[65536];
   int i;
 
-#pragma acc parallel copyout(res) num_gangs(64) num_workers(64)
+#pragma acc parallel copyout(res) num_gangs(64) num_workers(16)
   {
     int i, j;
 #pragma acc loop gang worker
diff --git a/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C 
b/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
index c1a10cb..d887178 100644
--- a/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
+++ b/libgomp/testsuite/libgomp.oacc-c++/privatized-ref-3.C
@@ -7,7 +7,7 @@ void workers (void)
   double res[65536];
   int i;
 
-#pragma acc parallel copyout(res) num_gangs(64) num_workers(64)
+#pragma acc parallel copyout(res) num_gangs(64) num_workers(16)
   {
     int i, j;
     int tmpvar;
@@ -34,7 +34,7 @@ void vectors (void)
   double res[65536];
   int i;
 
-#pragma acc parallel copyout(res) num_gangs(64) num_workers(64)
+#pragma acc parallel copyout(res) num_gangs(64) num_workers(16)
   {
     int i, j;
     int tmpvar;

Reply via email to