-
Notifications
You must be signed in to change notification settings - Fork 9
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
#728: Avoid ICEs and compilation failures in Intel 19.x and Nvidia with gcc<=7.2.0 #1178
Conversation
There are still these that I'm suspicious of:
However, there's nothing in the code that instantiates them in a way that makes the compiler unhappy, so I'm inclined to leave them alone for now. If there's consensus on that, then I think this is ready to merge. |
The upshot of this is that the workaround was as straightforward as I expected, once the bug was isolated. It is rather clunky though |
Does this fix the entire Intel 19 problem? |
Yeah, the whole suite of examples and tests built, and the only test failures are the large process count ones we sometimes see with other compilers. |
The CUDA nvcc 10.1 problem seems real.. once we get that fixed we should merge this. |
|
Could you add an Intel 19 build onto the CI set as part of this PR? Or is there a bunch of additional setup that would need to be done? |
No, that should be easy to do. Now that I think about it the reason I added the defaults was for NVCC. |
Lol, that's rich. Let me try adding a |
Codecov Report
@@ Coverage Diff @@
## develop #1178 +/- ##
========================================
Coverage 79.59% 79.60%
========================================
Files 724 724
Lines 27776 27788 +12
========================================
+ Hits 22108 22120 +12
Misses 5668 5668
|
I tested some key files that had been failing locally, and the last commit made nvcc happy with them. The whole build of course takes forever. I think this is ready to go, though. CI will tell. |
/azp list |
/azp help |
Supported commands
See additional documentation. |
/azp run PR tests extended (nvidia cuda 11.0, ubuntu, mpich) |
No pipelines are associated with this pull request. |
/azp run "PR tests extended (nvidia cuda 11.0, ubuntu, mpich)" |
No pipelines are associated with this pull request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
Also I think I'll copycat this into my PR #1146
Great! I had that in mind when I tagged you. |
@lifflander I think the commas in the pipeline names are throwing off the command interface. It probably thinks those are multiple requested pipelines. Is there a quoting syntax? Should they be renamed with semicolons or dashes or something? |
Nvidia build fails with stuff in callbacks. Need to fix before merging. |
This was an issue of using a too-old nvcc, 9.2 vs 10 or 11. The last commit is to fix an ICE that arises in the later Nvidia compilers |
OK, tests on nvcc 11.1 are happy after the last workaround. |
@PhilMiller Can you rebase this so we can merge it next? |
…t to avoid ICE in Intel 19.x
dcdf144
to
b290e7e
Compare
The final nvcc ICE is actually in GCC, as a result of code that nvcc generates. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83204 Reported our repro case to Christian Trott and Max Katz to see if nvcc can be fixed to not trigger that for older versions |
kokkos/kokkos-kernels#349 for reference on an earlier report of the issue |
We didn't see the nvcc/gcc ICE in our CI because the container uses GCC 7.5.0, while the bug was fixed in 7.2.1/7.3.0 |
For reference, here's the reduced test case for the Intel ICE: using ActiveTypedFnType = void();
template < typename MsgT >
void basicHandler();
// *UN*commenting this makes the compiler run successfully;
// is the issue that instantiation is triggered by the template default argument?
//auto fn = &basicHandler<int>;
template <
typename MsgT,
ActiveTypedFnType f =
basicHandler< MsgT>
>
void reduce( )
{
auto foo = f;
}
void __trans_tmp_2() {
// Or uncommenting this
//auto g = &basicHandler<int>;
reduce<
int
// Or uncommenting this
//, basicHandler<int>
>();
} |
#728: Avoid ICEs and compilation failures in Intel 19.x and Nvidia with gcc<=7.2.0
Fixes #728