Re: [AMD GCN] Use 'radeon' for the environment variable 'ACC_DEVICE_TYPE'
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'
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)
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 {