nvcc enhancement request can't specify number of registers per architecture target in nvcc

Edit: see tera’s response below. Appendix B.17 describes the right way to accomplish this.


[s]The NVDeveloper bug reporting system is returning a failure message when I submit my enhancement request.

I’ll try again here.

==============

Synopsis:

Can’t specify number of registers per architecture target

Workaround:

Perform multiple independent builds.

Description:

The [font=“Courier New”]nvcc[/font] compiler does not support specifying “-maxrregcount” per architecture target. This presents a problem when performing a multiple architecture compilation.

I would like to be able to specify:

[/s][indent][font=“Courier New”]nvcc <…> [/font]
[font=“Courier New”]-gencode=arch=,code=,maxrregcount=,… [/font]
[font=“Courier New”]-gencode=arch=,code=,maxrregcount=,…[/font]
[/indent][s]
If this is possible then the Visual Studio property pages should also be updated to allow specifying:

[/s][indent][font=“Courier New”]GPU Architecture (1)[/font]
[font=“Courier New”]Max Used Register (1)[/font]
[font=“Courier New”]GPU Architecture (2)[/font]
[font=“Courier New”]Max Used Register (2)[/font]
[font=“Courier New”]GPU Architecture (3)[/font]
[font=“Courier New”]Max Used Register (3)[/font]
[/indent][indent] [/indent]

Note that you can specify per-architecture launch bounds (see appendix B.17 of the Programming Guide). They also are a more flexible mechanism, as they may be specified for each kernel separately. And due to their different parametrization, it may not even be necessary to give them different parameters for different architectures.

Perfect, thank you! I totally missed this method in the Guide.