Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support expt-relaxed-constexpr same as expt-extended-lambda #2411

Closed
PhilipFackler opened this issue Oct 1, 2019 · 14 comments
Closed

Support expt-relaxed-constexpr same as expt-extended-lambda #2411

PhilipFackler opened this issue Oct 1, 2019 · 14 comments
Assignees

Comments

@PhilipFackler
Copy link
Contributor

The Kokkos CMake (and the makefile generator) support the --expt-extended-lambda option through the Kokkos_ENABLE_CUDA_LAMBDA option (or the "enable_lambda" cuda option). This gets propagated automatically to my project's compiler options.

However, I have to manually add --expt-relaxed-constexpr to my compiler options. Can you add an option to support this flag in the same way?

@dhollman
Copy link

dhollman commented Oct 1, 2019

I would further argue that it should be enabled by default.

@crtrott
Copy link
Member

crtrott commented Oct 1, 2019

I don't want to enable experimental features by default. We have enough failures in-field from non-experimental capabilities ...

@dhollman
Copy link

dhollman commented Oct 1, 2019

But it's not actually an experimental feature...

@dhollman
Copy link

dhollman commented Oct 1, 2019

As evidence, I offer the last three tweets of this twitter conversation: https://twitter.com/__simt__/status/1164743863279341568?s=20

@DavidPoliakoff
Copy link
Contributor

@dhollman (memeing) yeah that would be the first time somebody said something on Twitter that didn't come to pass, LGTM

@dhollman
Copy link

dhollman commented Oct 1, 2019

@DavidPoliakoff sure, but the relevant part is that that's someone pretty high up at NVIDIA.

@DavidPoliakoff
Copy link
Contributor

@dhollman : to provide some actual content, it would be great if it could be enabled by default but with a warning. Generally I like your idea of letting people opt out of things accidentally working (see also: non __device__ marked functions getting inlined and thus not being a problem)

@masterleinad masterleinad self-assigned this Oct 2, 2019
@crtrott
Copy link
Member

crtrott commented Oct 2, 2019

Look it is nice that Olivier thinks these features are kinda real stuff. But considering how much issues we find with features which are actually technically supported, I don't care. If Olivier can convince the compiler team to take the "experimental" off and NVIDIA promises us that if we find issues with it they fix them then fine. Until then it is NOT going to be the default.

@dalg24
Copy link
Member

dalg24 commented Oct 2, 2019

I don't want to enable experimental features by default. We have enough failures in-field from non-experimental capabilities ...

Then you might want to comment on #2412

@ibaned
Copy link
Contributor

ibaned commented Oct 2, 2019

Team discussion today, despite strong support from several team members to enable these experimental options by default, there was enough dissent among other members that we decided to still not enable them by default. The argument was that NVIDIA does not give these features good enough first-class support that we feel confident in having customers silently depend on them by default.

@ibaned
Copy link
Contributor

ibaned commented Oct 2, 2019

To clarify, this is not quite the original question in the issue above. I don't think we voted on giving constexpr equal footing to lambda.

@mhoemmen
Copy link
Contributor

mhoemmen commented Oct 3, 2019

@crtrott You realize the whole of Sierra turns this lambda option on and uses it right

@mhoemmen
Copy link
Contributor

mhoemmen commented Oct 3, 2019

If it's experimental it would be good to know sooner rather than later whether we should use it

@crtrott
Copy link
Member

crtrott commented Oct 3, 2019

Mark: I always told you guys that it is experimental in NVIDIA, but seems to work well enough if you know what you are doing. I remember very distinctly voicing my unease with the decision to require lambda support in Tpetra. More on this in an email ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants