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

Tpetra: GCC 5.3.0 internal compiler error #6200

Closed
brian-kelley opened this issue Oct 30, 2019 · 8 comments
Closed

Tpetra: GCC 5.3.0 internal compiler error #6200

brian-kelley opened this issue Oct 30, 2019 · 8 comments
Labels
pkg: Tpetra type: bug The primary issue is a bug in Trilinos code or tests

Comments

@brian-kelley
Copy link
Contributor

brian-kelley commented Oct 30, 2019

Bug Report

@trilinos/tpetra
@csiefer2

Description

GCC 5.3.0 (on trappist, rocketman and enigma) has an internal compiler error in
Tpetra_Details_residual.hpp, line 216, even though the line looks very innocuous.

/home/nightlyTesting/OPENMPI-1.10.1_RELEASE_PERFORMANCE/Trilinos/packages/tpetra/coreTpetra_Details_residual.hpp:216:48: internal compiler error: in tsubst_copy, at cp/pt.c:13151
     residual_launch_parameters<execution_space>(A_lcl.numRows (), A_lcl.nnz (), rows_per_thread, team_size, vector_length);
                                                ^
0x65f242 tsubst_copy
	../../.cp/pt.c:13149
0x65f878 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool, bool)
	../../.cp/pt.c:15747
...etc

I think this started with commit ed2c660. This affects most of the "Experimental" CDash builds on several different machines so hopefully it's easy to reproduce and find a workaround.

Steps to Reproduce

  1. SHA1: 1f4c2d is the one showing in the failing dashboard builds, but probably ed2c660 or later will have it.
  2. Build with GCC 5.3, it doesn't seem like the exact configuration or machine details matter.
  3. Shake fist angrily at compiler.
@brian-kelley brian-kelley added type: bug The primary issue is a bug in Trilinos code or tests pkg: Tpetra labels Oct 30, 2019
@csiefer2
Copy link
Member

csiefer2 commented Oct 31, 2019

@mhoemmen Any ideas as to how I tickled the compiler incorrectly?

@rppawlo
Copy link
Contributor

rppawlo commented Oct 31, 2019

Are you using nested lambdas? Gcc 5 and 6 have a nasty bug with nested lambdas.

@csiefer2
Copy link
Member

I am using nested lambdas, but the compiler woofs long before that.

@mhoemmen
Copy link
Contributor

@csiefer2 Sometimes it helps to make code simpler -- e.g., make a temporary variable for A_lcl.numRows() etc.

@csiefer2
Copy link
Member

@mhoemmen Since I'm mucking with it anyway, do you mind if I yank the launch parameters function out of Ifpack2's scaledDampedResidual and just have it call this?

@csiefer2
Copy link
Member

Buh?

Tpetra_Details_residual.hpp:219:48: error: no matching function for call to ‘residual_launch_parameters(const int64_t&, const int64_t&, const int64_t&, const int&, const int&)’
residual_launch_parameters<execution_space>(numLocalRows, myNnz, rows_per_thread, team_size, vector_length);

Tpetra_Details_residual.hpp:64:1: note: candidate: template int64_t Tpetra::Details::residual_launch_parameters(int64_t, int64_t, int64_t, int&, int&)

@csiefer2
Copy link
Member

@dsunder helped me. Yet another compiler bug! Yay!

@csiefer2
Copy link
Member

csiefer2 commented Nov 1, 2019

PR merged. @brian-kelley please verify the nightlies worked and close issue, if so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pkg: Tpetra type: bug The primary issue is a bug in Trilinos code or tests
Projects
None yet
Development

No branches or pull requests

4 participants