Closed finkandreas closed 4 years ago
@trilinos/ifpack2
@finkandreas Thanks for reporting! The only reason I need rw_type
and lcl_vec_type
is because I don't have C++14 generic lambdas. I don't have a build set up like this, so could you please do an experiment for me? Delete lines 1052-1057 of Ifpack2_Relaxation_def.hpp
, that is, the following lines:
using rw_type =
decltype (readWrite (gblDiag).on (Kokkos::HostSpace ()));
// Once we have C++14, we can get rid of this alias and use
// "auto" in the lambda below.
using lcl_vec_type =
Tpetra::with_local_access_function_argument_type<rw_type>;
replace line 1061 with the following:
([&A_row, L1_eta, numMyRows] (const auto& diag) {
and rebuild. The only reason I didn't do this is because Trilinos can't use C++14 things, but if this works for you, then we can use this as a work-around (protected with a macro).
I tried your suggestion, but the build error is still the same.
@finkandreas Thanks for trying! What happens if you use Kokkos_CXX_STANDARD=17
?
that's not a valid standard for nvcc (at least not in cuda-10.2)
@finkandreas Thanks for trying! : - ) FYI, it looks like Trilinos now has a non-CUDA C++14 build: https://github.com/trilinos/Trilinos/pull/6969
@srajama1 Any suggestion where we can go with this?
CC: @kddevin due to Tpetra reference.
We started seeing this error with intel builds when we turned c++14 on for sierra on Friday as well. I've got a workaround for it and a few other issues that popped up that I'll put a PR up for today.
Thanks @vbrunini !
See #7767
@jwillenbring we probably need a C++14 CUDA PR test.
Trying to build with cuda-10.1 or cuda-10.2 and setting
Kokkos_CXX_STANDARD=14
fails the build in Ifpack2.I use this cmake command:
The build fails with the following error message:
In my opinion this is a bug in nvcc, but maybe there is a workaround. Host compiler is GCC-8.3.0. A reproducer can be seen with docker and the following Dockerfile: