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, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander 
Walter
>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

Reply via email to