Hi Tom! Ping, one item specifically: "backporting [...] to release branches" (see below) -- this ping is dedicated to the upcoming GCC 10.3 release. ;-)
On 2021-01-13T12:59:14+0100, I wrote: > 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. >> >> 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. Grüße Thomas > Further: > 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.) >> [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