Hi!

Tom, ping?


Also, I have now pushed to devel/omp/gcc-10 branch cherry-picks of Tom's
"[nvptx] Set -misa=sm_35 by default" in commit
d4b73f42df11282c7c170b55eb29cd8ff6b998d8, and Tobias' "nvptx -
invoke.texi: Update default of -misa" in commit
c77b42af4fa245ea87aee0ad55fa2b76611afb47, see attached, too.


Grüße
 Thomas


On 2021-02-05T17:10:01+0100, Thomas Schwinge <tho...@codesourcery.com> wrote:
> Hi Tom!
>
> Ping.
>
>
> Grüße
>  Thomas
>
>
> On 2021-01-22T16:23:57+0100, I wrote:
>> Hi Tom!
>>
>> Ping.
>>
>>
>> Grüße
>>  Thomas
>>
>>
>> On 2021-01-13T12:59:14+0100, I wrote:
>>> Hi Tom!
>>>
>>> On 2020-10-09T13:56:09+0200, Tom de Vries <tdevr...@suse.de> wrote:
>>>> The nvptx-as assembler verifies the ptx code using ptxas, if there's any
>>>> in the PATH.
>>>>
>>>
>>> After quite some digression to first add a testsuite to nvptx-tools (see
>>> <https://twitter.com/schwinge_thomas/status/1348626368578408449> or just
>>> <https://github.com/MentorEmbedded/nvptx-tools/tree/master/test/>), which
>>> I found advisable generally, and then given the kinds of changes we're
>>> now doing :-) -- I've now prepared nvptx-as code changes as discussed in
>>> <https://github.com/MentorEmbedded/nvptx-tools/issues/24> "nvptx-as
>>> should not assume a default sm version".  (Currently testing.)
>>>
>>>> The default in the nvptx port for -misa=sm_xx is sm_30, but the ptxas of 
>>>> the
>>>> latest cuda release (11.1) no longer supports sm_30.
>>>>
>>>> Consequently we cannot build gcc against that release (although we should
>>>> still be able to build without any cuda release).
>>>>
>>>> Fix this by setting -misa=sm_35 by default.
>>>>
>>>> Tested check-gcc on nvptx.
>>>>
>>>> Tested libgomp on x86_64-linux with nvpx accelerator.
>>>>
>>>> Both build against cuda 9.1.
>>>>
>>>> Committed to trunk.
>>>
>>> ACK.
>>>
>>> What is your opinion about backporting that (plus Tobias' documentation
>>> update, plus corresponding web 'changes.html' updates?) to release
>>> branches, so that nvptx offloading users may use GCC 10/9/8 with CUDA
>>> 11.0+?
>>>
>>> I don't think losing sm_30 support is a major concern: support for sm_35
>>> has been introduced with PTX ISA 3.1, CUDA 5.0, driver r302.
>>>
>>>
>>> Further:
>>>
>>>> [nvptx] Set -misa=sm_35 by default
>>>
>>>>     PR target/97348
>>>>     * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
>>>>     default is used.
>>>>     * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
>>>
>>>> --- a/gcc/config/nvptx/nvptx.h
>>>> +++ b/gcc/config/nvptx/nvptx.h
>>>
>>>> -#define ASM_SPEC "%{misa=*:-m %*}"
>>>> +/* Default needs to be in sync with default for misa in nvptx.opt.
>>>> +   We add a default here to work around a hard-coded sm_30 default in
>>>> +   nvptx-as.  */
>>>> +#define ASM_SPEC "%{misa=*:-m %*; :-m sm_35}"
>>>
>>>> --- a/gcc/config/nvptx/nvptx.opt
>>>> +++ b/gcc/config/nvptx/nvptx.opt
>>>
>>>> +; Default needs to be in sync with default in ASM_SPEC in nvptx.h.
>>>>  misa=
>>>> -Target RejectNegative ToLower Joined Enum(ptx_isa) Var(ptx_isa_option) 
>>>> Init(PTX_ISA_SM30)
>>>> +Target RejectNegative ToLower Joined Enum(ptx_isa) Var(ptx_isa_option) 
>>>> Init(PTX_ISA_SM35)
>>>>  Specify the version of the ptx ISA to use.
>>>
>>> As I'd suggested in
>>> <https://github.com/MentorEmbedded/nvptx-tools/issues/24> "nvptx-as
>>> should not assume a default sm version", I'd then push the attached
>>> "[nvptx] Let nvptx-as figure out the target architecture [PR97348]" to
>>> GCC master branch, OK?  (Currently testing.)
>>>
>>> That one I wouldn't backport to GCC release branches, so that we don't
>>> require users to update nvptx-tools for these builds.
>>>
>>>
>>> Grüße
>>>  Thomas


-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München 
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank 
Thürauf
>From eac0d3458f38cd5bb4c930b2887a547b64b046ef Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <tho...@codesourcery.com>
Date: Wed, 13 Jan 2021 09:04:47 +0100
Subject: [PATCH] [nvptx] Let nvptx-as figure out the target architecture
 [PR97348]

... now that it has been enhanced to do so.

This is a follow-up to PR97348 commit 383400a6078d75bbfa1216c9af2c37f7e88740c9
"[nvptx] Set -misa=sm_35 by default".

	gcc/
	PR target/97348
	* config/nvptx/nvptx.h (ASM_SPEC): Don't set.
	* config/nvptx/nvptx.opt (misa): Adjust comment.
---
 gcc/config/nvptx/nvptx.h   | 5 -----
 gcc/config/nvptx/nvptx.opt | 1 -
 2 files changed, 6 deletions(-)

diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index 2451703e77f..1a61e6207f6 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -29,11 +29,6 @@
 
 #define STARTFILE_SPEC "%{mmainkernel:crt0.o}"
 
-/* Default needs to be in sync with default for misa in nvptx.opt.
-   We add a default here to work around a hard-coded sm_30 default in
-   nvptx-as.  */
-#define ASM_SPEC "%{misa=*:-m %*; :-m sm_35}"
-
 #define TARGET_CPU_CPP_BUILTINS()		\
   do						\
     {						\
diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt
index 51363e4e276..cf7f9022663 100644
--- a/gcc/config/nvptx/nvptx.opt
+++ b/gcc/config/nvptx/nvptx.opt
@@ -61,7 +61,6 @@ Enum(ptx_isa) String(sm_30) Value(PTX_ISA_SM30)
 EnumValue
 Enum(ptx_isa) String(sm_35) Value(PTX_ISA_SM35)
 
-; Default needs to be in sync with default in ASM_SPEC in nvptx.h.
 misa=
 Target RejectNegative ToLower Joined Enum(ptx_isa) Var(ptx_isa_option) Init(PTX_ISA_SM35)
 Specify the version of the ptx ISA to use.
-- 
2.17.1

>From d4b73f42df11282c7c170b55eb29cd8ff6b998d8 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevr...@suse.de>
Date: Fri, 9 Oct 2020 11:36:10 +0200
Subject: [PATCH 1/2] [nvptx] Set -misa=sm_35 by default

The nvptx-as assembler verifies the ptx code using ptxas, if there's any
in the PATH.

The default in the nvptx port for -misa=sm_xx is sm_30, but the ptxas of the
latest cuda release (11.1) no longer supports sm_30.

Consequently we cannot build gcc against that release (although we should
still be able to build without any cuda release).

Fix this by setting -misa=sm_35 by default.

Tested check-gcc on nvptx.

Tested libgomp on x86_64-linux with nvpx accelerator.

Both build again cuda 9.1.

gcc/ChangeLog:

2020-10-09  Tom de Vries  <tdevr...@suse.de>

	PR target/97348
	* config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
	default is used.
	* config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.

(cherry picked from commit 383400a6078d75bbfa1216c9af2c37f7e88740c9)
---
 gcc/ChangeLog.omp          | 7 +++++++
 gcc/config/nvptx/nvptx.h   | 5 ++++-
 gcc/config/nvptx/nvptx.opt | 3 ++-
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index 029e13d1855..96896146824 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,3 +1,10 @@
+2021-02-16  Tom de Vries  <tdevr...@suse.de>
+
+	PR target/97348
+	* config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if
+	default is used.
+	* config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35.
+
 2021-02-09  Kwok Cheung Yeung  <k...@codesourcery.com>
 
 	Backport from mainline
diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index 6ebcc760771..17fe157058c 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -29,7 +29,10 @@
 
 #define STARTFILE_SPEC "%{mmainkernel:crt0.o}"
 
-#define ASM_SPEC "%{misa=*:-m %*}"
+/* Default needs to be in sync with default for misa in nvptx.opt.
+   We add a default here to work around a hard-coded sm_30 default in
+   nvptx-as.  */
+#define ASM_SPEC "%{misa=*:-m %*; :-m sm_35}"
 
 #define TARGET_CPU_CPP_BUILTINS()		\
   do						\
diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt
index 75c3d54864e..d6910a96cf0 100644
--- a/gcc/config/nvptx/nvptx.opt
+++ b/gcc/config/nvptx/nvptx.opt
@@ -59,6 +59,7 @@ Enum(ptx_isa) String(sm_30) Value(PTX_ISA_SM30)
 EnumValue
 Enum(ptx_isa) String(sm_35) Value(PTX_ISA_SM35)
 
+; Default needs to be in sync with default in ASM_SPEC in nvptx.h.
 misa=
-Target RejectNegative ToLower Joined Enum(ptx_isa) Var(ptx_isa_option) Init(PTX_ISA_SM30)
+Target RejectNegative ToLower Joined Enum(ptx_isa) Var(ptx_isa_option) Init(PTX_ISA_SM35)
 Specify the version of the ptx ISA to use.
-- 
2.17.1

>From c77b42af4fa245ea87aee0ad55fa2b76611afb47 Mon Sep 17 00:00:00 2001
From: Tobias Burnus <tob...@codesourcery.com>
Date: Mon, 12 Oct 2020 13:13:20 +0200
Subject: [PATCH 2/2] nvptx - invoke.texi: Update default of -misa

Followup to commit 383400a6078d75bbfa1216c9af2c37f7e88740c9

gcc/ChangeLog
	* doc/invoke.texi (nvptx's -misa): Update default to sm_35.

(cherry picked from commit 91e4e16b550540723cca824b9674c7d8c43f4849)
---
 gcc/ChangeLog.omp   | 4 ++++
 gcc/doc/invoke.texi | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index 96896146824..ba959fb37a4 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,3 +1,7 @@
+2021-02-16  Tobias Burnus  <tob...@codesourcery.com>
+
+	* doc/invoke.texi (nvptx's -misa): Update default to sm_35.
+
 2021-02-16  Tom de Vries  <tdevr...@suse.de>
 
 	PR target/97348
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index fe04b4d8e6a..dc00a0bf6a8 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -25008,7 +25008,7 @@ Generate code for 32-bit or 64-bit ABI.
 @opindex march
 Generate code for given the specified PTX ISA (e.g.@: @samp{sm_35}).  ISA
 strings must be lower-case.  Valid ISA strings include @samp{sm_30} and
-@samp{sm_35}.  The default ISA is sm_30.
+@samp{sm_35}.  The default ISA is sm_35.
 
 @item -mmainkernel
 @opindex mmainkernel
-- 
2.17.1

Reply via email to