Hi!

On 2025-05-12T17:12:36+0200, Tobias Burnus <tbur...@baylibre.com> wrote:
> PING.
>
> There is actually a minor update as meanwhile CUDA 12.8 was
> released that added the 'f' suffix and sm_103 and sm_121.
> Still, the pattern remains the same; hence, a normal PING.

(What would a non-normal ping be?)

> On April 25, 2025, Tobias Burnus wrote:
>> The idea of -march-map= is to simply and future proof select the
>> best -march for a certain arch, without requiring that the compiler
>> has support for it (like having a special multilib for it) - while
>> -march= sets the actually used '.target' (and the compiler might
>> actually generate specialized code for it).
>>
>> The patch updates the sm_X for the CUDA 12.8 additions, namely for
>> three Blackwell GPU architectures.
>>
>> Cf. 
>> https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#release-notes
>> or also 
>> https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
>>
>> OK for mainline?
>>
>> Tobias
>>
>> PS: CUDA 12.7 seems to be an internal release, which shows up as
>> PTX version but was not released to the public.
>> PTX 8.6/CUDA 12.7 added sm_100/sm_101 - and PTX 8.7/CUDA 12.8 added 
>> sm120.
>>
>> PPS: sm_80 (Ampere) was added in PTX ISA 7.0 (CUDA 11.0),
>> sm_89 (Ada) in PTX ISA 7.8 (CUDA).
>> As sm_90 (Hopper) + sm_100/101/120 (Blackwell) currently/now map to
>> sm_89, GCC generates PTX ISA .version 7.8 for them.
>> Otherwise, sm_80 and sm_89 produce (for now) identical code.

> nvptx/nvptx.opt: Update -march-map= for newer sm_xxx

Pushed to trunk branch commit 60ba2b61af23e6d561c5cbab8df57ea093ade3b3
"nvptx/nvptx.opt: Update -march-map= for newer sm_xxx", as posted.


Grüße
 Thomas


> Usage of the -march-map=: "Select the closest available '-march=' value
> that is not more capable."
>
> As PTX ISA 8.6/8.7 (= unreleased CUDA 12.7 + CUDA 12.8) added the
> Nvidia Blackwell GPUs SM_100, SM_101, and SM_120, it makes sense to
> add them as well. Note that all three come as sm_XXX and sm_XXXa.
>
> PTX ISA 8.8 (CUDA 12.9) added SM_103 and SM_121 and the new 'f' suffix
> for all SM_1xx.
>
> Internally, GCC currently generates the same code for >= sm_80 (Ampere);
> however, as GCC's -march= also supports sm_89 (Ada), the here added
> sm_1xxs (Blackwell) will map to sm_89.
>
> [Naming note: while ptx code generated for sm_X can also run with sm_Y
> if Y > X, code generated for sm_XXXa can (generally) only run on
> the specific hardware; and sm_XXXf implies compatibility with only
> subsequent targets in the same family.]
>
> gcc/ChangeLog:
>
>       * config/nvptx/nvptx.opt (march-map=): Add sm_100{,f,a},
>       sm_101{,f,a}, sm_103{,a,f}, sm_120{,a,f} and sm_121{,f,a}.
>
>  gcc/config/nvptx/nvptx.opt | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 45 insertions(+)
>
> diff --git a/gcc/config/nvptx/nvptx.opt b/gcc/config/nvptx/nvptx.opt
> index d326ca4ad26..9796839f8df 100644
> --- a/gcc/config/nvptx/nvptx.opt
> +++ b/gcc/config/nvptx/nvptx.opt
> @@ -120,6 +120,51 @@ Target RejectNegative Alias(misa=,sm_89)
>  march-map=sm_90a
>  Target RejectNegative Alias(misa=,sm_89)
>  
> +march-map=sm_100
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_100f
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_100a
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_101
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_101f
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_101a
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_103
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_103f
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_103a
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_120
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_120f
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_120a
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_121
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_121f
> +Target RejectNegative Alias(misa=,sm_89)
> +
> +march-map=sm_121a
> +Target RejectNegative Alias(misa=,sm_89)
> +
>  Enum
>  Name(ptx_version) Type(enum ptx_version)
>  Known PTX ISA versions (for use with the -mptx= option):

Reply via email to