]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
nvptx: Switch default from '-march=sm_30' to '-march=sm_52'
authorThomas Schwinge <tschwinge@baylibre.com>
Mon, 11 Nov 2024 12:20:46 +0000 (13:20 +0100)
committerThomas Schwinge <tschwinge@baylibre.com>
Mon, 9 Dec 2024 09:48:40 +0000 (10:48 +0100)
In preparation of GCC/nvptx code changes that require sm_52 features, this
commit raises nvptx code generation from sm_30 "Kepler" to sm_52 "Maxwell".
The latter has been supported as of CUDA 6.5 (2014-08), and is thus supported
by most Nvidia GPUs of the last decade, approximately.  (This commit doesn't
change the use of PTX ISA 6.0, which already requires CUDA 9.0 anyway.)

To continue building sm_30 multilib variants (for use via building/linking with
'-march=sm_30'), specify '--with-multilib-list=default,sm_30', for example.  Or,
to continue defaulting to sm_30 multilib variants, specify '--with-arch=sm_30'
(plus '--without-multilib-list', if applicable).  See the documentation,
<https://gcc.gnu.org/install/specific.html#nvptx-x-none>.

(Note that after a long deprecation time, eventually the
sm_3x "Kepler architecture support is removed from CUDA 12.0", 2022-12.)

gcc/
* config.gcc [nvptx-*]: Switch default from '-march=sm_30' to
'-march=sm_52'.
* doc/install.texi (Nvidia PTX Options): Update.

gcc/config.gcc
gcc/doc/install.texi

index a2d21b5f34369de8b4dfb5afe51ca5275aede9e5..262b38cf0e36ccf35381bf3bb81cd3971593b8e9 100644 (file)
@@ -4133,7 +4133,7 @@ if test x$with_arch = x ; then
       with_arch=mips2
       ;;
     nvptx-*)
-      with_arch=sm_30
+      with_arch=sm_52
       ;;
   esac
 
@@ -5596,7 +5596,7 @@ case "${target}" in
        nvptx-*)
                supported_defaults=arch
 
-               nvptx_multilibs_default=sm_30
+               nvptx_multilibs_default=sm_52
 
                case "x${with_multilib_list}" in
                x | xno)
index f3a0700ced430bf529a6347d4bd74428d63d29b0..feabf4cbe20b7b9c320327035f1df277753a1fa8 100644 (file)
@@ -1422,7 +1422,7 @@ is specified, then no additional multilibs are built.
 Otherwise, @var{list} is a comma separated list specifying which
 multilibs to build.
 List items are either @samp{sm_SM}, or @samp{default}, which is a
-placeholder specifying a default set of multilibs: @samp{sm_30}.
+placeholder specifying a default set of multilibs: @samp{sm_52}.
 Any duplicates are filtered out.
 If @option{--with-multilib-list} is not specified, then
 @option{--with-multilib-list=default} is assumed.
@@ -4628,7 +4628,7 @@ Use the @option{--disable-sjlj-exceptions} and
 The @option{--with-arch} option may be specified to override the
 default value for the @option{-march} option, and to also build
 corresponding target libraries.
-The default is @option{--with-arch=sm_30}.
+The default is @option{--with-arch=sm_52}.
 
 For example, if @option{--with-arch=sm_70} is specified,
 code generation defaults to @option{-march=sm_70} and