Re: [AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE'

2020-04-29 Thread Thomas Schwinge
Hi!

On 2020-04-23T17:27:45+0100, Andrew Stubbs  wrote:
> On 21/04/2020 13:24, Thomas Schwinge wrote:
>> [...], what about the user-visible 'gcn' in the
>> 'ACC_DEVICE_TYPE' environment variable?  As I'd quoted in
>> <http://mid.mail-archive.com/87blsqlre6.fsf@euler.schwinge.homeip.net>:
>>
>> | Per OpenACC 3.0, A.1.2. "AMD
>> | GPU Targets", for example, there is 'acc_device_radeon'
>>
>> ... which you've addressed...
>>
>> | (and "the
>> | case-insensitive name 'radeon' for the environment variable
>> | 'ACC_DEVICE_TYPE'").
>>
>> ..., but this not yet?
>
> Oh, right, the user-visible case ought to accept "radeon", at least. :-(
>
>> Please see the attached "[AMD GCN] Use 'radeon' for the environment
>> variable 'ACC_DEVICE_TYPE'", [...]
>
> This is OK, assuming it tests OK.

Thanks, tested, and now pushed to master branch in commit
4912a04f8b35fadf65973bffc7037432ff7b7980 "[gcn] Use 'radeon' for the
environment variable 'ACC_DEVICE_TYPE'", see attached.


Grüße
 Thomas


-
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander 
Walter
>From 4912a04f8b35fadf65973bffc7037432ff7b7980 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge 
Date: Tue, 21 Apr 2020 14:16:24 +0200
Subject: [PATCH] [gcn] Use 'radeon' for the environment variable
 'ACC_DEVICE_TYPE'

..., per OpenACC 3.0, A.1.2. "AMD GPU Targets".

This complements commit 6687d13a87c42dddc7d1c7adade38d31ba0d1401 "Rename
acc_device_gcn to acc_device_radeon".

	libgomp/
	* oacc-init.c (get_openacc_name): Handle 'gcn'.
	* testsuite/lib/libgomp.exp
	(offload_target_to_openacc_device_type) [amdgcn*]: Return
	'radeon'.  Adjust all users.
	(check_effective_target_openacc_amdgcn_accel_present): Rename
	to...
	(check_effective_target_openacc_radeon_accel_present): ... this.
	Adjust all users.
	(check_effective_target_openacc_amdgcn_accel_selected): Rename to...
	(check_effective_target_openacc_radeon_accel_selected): ... this.
	Adjust all users.
---
 libgomp/ChangeLog  | 12 
 libgomp/oacc-init.c|  4 +++-
 libgomp/testsuite/lib/libgomp.exp  | 16 
 libgomp/testsuite/libgomp.oacc-c++/c++.exp | 18 +-
 .../libgomp.oacc-c++/firstprivate-mappings-1.C |  2 +-
 .../acc_get_property-gcn.c |  2 +-
 .../asyncwait-nop-1.c  |  2 +-
 .../firstprivate-mappings-1.c  |  2 +-
 .../function-not-offloaded.c   |  4 ++--
 .../libgomp.oacc-c-c++-common/loop-auto-1.c|  2 +-
 .../loop-dim-default.c |  2 +-
 .../libgomp.oacc-c-c++-common/routine-wv-2.c   |  2 +-
 .../libgomp.oacc-c-c++-common/tile-1.c |  2 +-
 libgomp/testsuite/libgomp.oacc-c/c.exp | 18 +-
 .../libgomp.oacc-fortran/error_stop-1.f|  2 +-
 .../libgomp.oacc-fortran/error_stop-2.f|  2 +-
 .../libgomp.oacc-fortran/error_stop-3.f|  2 +-
 .../testsuite/libgomp.oacc-fortran/fortran.exp | 14 +++---
 18 files changed, 61 insertions(+), 47 deletions(-)

diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index 53bb8d23fa15..cfe6e0653c92 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,5 +1,17 @@
 2020-04-29  Thomas Schwinge  
 
+	* oacc-init.c (get_openacc_name): Handle 'gcn'.
+	* testsuite/lib/libgomp.exp
+	(offload_target_to_openacc_device_type) [amdgcn*]: Return
+	'radeon'.  Adjust all users.
+	(check_effective_target_openacc_amdgcn_accel_present): Rename
+	to...
+	(check_effective_target_openacc_radeon_accel_present): ... this.
+	Adjust all users.
+	(check_effective_target_openacc_amdgcn_accel_selected): Rename to...
+	(check_effective_target_openacc_radeon_accel_selected): ... this.
+	Adjust all users.
+
 	* testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Add
 	'dg-do run'.
 
diff --git a/libgomp/oacc-init.c b/libgomp/oacc-init.c
index ef12b4c16d01..5d786a5a2e7c 100644
--- a/libgomp/oacc-init.c
+++ b/libgomp/oacc-init.c
@@ -99,7 +99,9 @@ unknown_device_type_error (acc_device_t invalid_type)
 static const char *
 get_openacc_name (const char *name)
 {
-  if (strcmp (name, "nvptx") == 0)
+  if (strcmp (name, "gcn") == 0)
+return "radeon";
+  else if (strcmp (name, "nvptx") == 0)
 return "nvidia";
   else
 return name;
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index e7ce784314d9..ee5f0e57b190 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -319,7 +319,7 @@ proc libgomp_option_proc { option } {
 proc offload_target_to_openacc_device_type { offload_target } {
 switch -glob $offload

Re: [AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE'

2020-04-23 Thread Andrew Stubbs

On 21/04/2020 13:24, Thomas Schwinge wrote:

I wondered whether for symmetry, the GCC-internal 'GOMP_DEVICE_GCN',
'OFFLOAD_TARGET_TYPE_GCN' should also be renamed to '*_RADEON'?  Or,
going by example of '*_NVIDIA_PTX', name them '*_AMD_GCN'.  Or, in fact
then leave them as '*_GCN', given Julian's point in another thread that
"CPU architectures or core implementations [sometimes shift] company
allegiance".  Thank you for listening to me thinking aloud.  ;-)


I don't think the GCC internal names need to change. The port name is 
now "gcn", and the target name "amdgcn". I don't think we need a third 
name for it!



But more importantly, what about the user-visible 'gcn' in the
'ACC_DEVICE_TYPE' environment variable?  As I'd quoted in
<http://mid.mail-archive.com/87blsqlre6.fsf@euler.schwinge.homeip.net>:

| Per OpenACC 3.0, A.1.2. "AMD
| GPU Targets", for example, there is 'acc_device_radeon'

... which you've addressed...

| (and "the
| case-insensitive name 'radeon' for the environment variable
| 'ACC_DEVICE_TYPE'").

..., but this not yet?


Oh, right, the user-visible case ought to accept "radeon", at least. :-(


Please see the attached "[AMD GCN] Use 'radeon' for the environment
variable 'ACC_DEVICE_TYPE'", completely untested.  Will you please test
and review that?  If approving this patch, please respond with
"Reviewed-by: NAME " so that your effort will be recorded in the
commit log, see <https://gcc.gnu.org/wiki/Reviewed-by>.


This is OK, assuming it tests OK.

Andrew


[AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE' (was: [committed, amdgcn/openacc] Rename acc_device_gcn to acc_device_radeon)

2020-04-21 Thread Thomas Schwinge
Hi Andrew!

On 2020-01-17T18:18:41+, Andrew Stubbs  wrote:
> I've committed this patch, pre-approved by Thomas. It's basically just a
> search and replace.
>
> I had originally invented acc_device_gcn for the device number, but as
> Thomas pointed out the OpenACC documentation already uses
> acc_device_radeon for AMD devices. Presumably this is what any existing
> code will use, if anything, so we ought to be compatible.
>
> There's no official release using the "wrong" name, so I don't believe
> we need to retain that name for any reason.

ACK.

> Rename acc_device_gcn to acc_device_radeon

I wondered whether for symmetry, the GCC-internal 'GOMP_DEVICE_GCN',
'OFFLOAD_TARGET_TYPE_GCN' should also be renamed to '*_RADEON'?  Or,
going by example of '*_NVIDIA_PTX', name them '*_AMD_GCN'.  Or, in fact
then leave them as '*_GCN', given Julian's point in another thread that
"CPU architectures or core implementations [sometimes shift] company
allegiance".  Thank you for listening to me thinking aloud.  ;-)

But more importantly, what about the user-visible 'gcn' in the
'ACC_DEVICE_TYPE' environment variable?  As I'd quoted in
<http://mid.mail-archive.com/87blsqlre6.fsf@euler.schwinge.homeip.net>:

| Per OpenACC 3.0, A.1.2. "AMD
| GPU Targets", for example, there is 'acc_device_radeon'

... which you've addressed...

| (and "the
| case-insensitive name 'radeon' for the environment variable
| 'ACC_DEVICE_TYPE'").

..., but this not yet?

Please see the attached "[AMD GCN] Use 'radeon' for the environment
variable 'ACC_DEVICE_TYPE'", completely untested.  Will you please test
and review that?  If approving this patch, please respond with
"Reviewed-by: NAME " so that your effort will be recorded in the
commit log, see <https://gcc.gnu.org/wiki/Reviewed-by>.


Grüße
 Thomas


-
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander 
Walter
>From d82df713bbb3401cc346bf07d61ad597d302d5a6 Mon Sep 17 00:00:00 2001
From: Thomas Schwinge 
Date: Tue, 21 Apr 2020 14:16:24 +0200
Subject: [PATCH] [AMD GCN] Use 'radeon' for the environment variable
 'ACC_DEVICE_TYPE'

..., per OpenACC 3.0, A.1.2. "AMD GPU Targets".

This complements commit 6687d13a87c42dddc7d1c7adade38d31ba0d1401 "Rename
acc_device_gcn to acc_device_radeon".
---
 libgomp/oacc-init.c|  4 +++-
 libgomp/testsuite/lib/libgomp.exp  | 16 
 libgomp/testsuite/libgomp.oacc-c++/c++.exp | 18 +-
 .../libgomp.oacc-c++/firstprivate-mappings-1.C |  2 +-
 .../acc_get_property-gcn.c |  2 +-
 .../asyncwait-nop-1.c  |  2 +-
 .../firstprivate-mappings-1.c  |  2 +-
 .../function-not-offloaded.c   |  4 ++--
 .../libgomp.oacc-c-c++-common/loop-auto-1.c|  2 +-
 .../loop-dim-default.c |  2 +-
 .../libgomp.oacc-c-c++-common/routine-wv-2.c   |  2 +-
 .../libgomp.oacc-c-c++-common/tile-1.c |  2 +-
 libgomp/testsuite/libgomp.oacc-c/c.exp | 18 +-
 .../libgomp.oacc-fortran/error_stop-1.f|  2 +-
 .../libgomp.oacc-fortran/error_stop-2.f|  2 +-
 .../libgomp.oacc-fortran/error_stop-3.f|  2 +-
 .../testsuite/libgomp.oacc-fortran/fortran.exp | 14 +++---
 17 files changed, 49 insertions(+), 47 deletions(-)

diff --git a/libgomp/oacc-init.c b/libgomp/oacc-init.c
index ef12b4c16d0..5d786a5a2e7 100644
--- a/libgomp/oacc-init.c
+++ b/libgomp/oacc-init.c
@@ -99,7 +99,9 @@ unknown_device_type_error (acc_device_t invalid_type)
 static const char *
 get_openacc_name (const char *name)
 {
-  if (strcmp (name, "nvptx") == 0)
+  if (strcmp (name, "gcn") == 0)
+return "radeon";
+  else if (strcmp (name, "nvptx") == 0)
 return "nvidia";
   else
 return name;
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index e7ce784314d..ee5f0e57b19 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -319,7 +319,7 @@ proc libgomp_option_proc { option } {
 proc offload_target_to_openacc_device_type { offload_target } {
 switch -glob $offload_target {
 	amdgcn* {
-	return "gcn"
+	return "radeon"
 	}
 	disable {
 	return "host"
@@ -483,10 +483,10 @@ proc check_effective_target_hsa_offloading_selected {} {
 }]
 }
 
-# Return 1 if at least one AMD GCN board is present.
+# Return 1 if at least one AMD GPU is accessible.
 
-proc check_effective_target_openacc_amdgcn_accel_present { } {
-return [check_runtime openacc_amdgcn_accel_present {
+proc check_effective_target_openacc_radeon_accel_present { } {
+return [check_runtime openacc_radeon_accel_present {