kokkos / kokkos-kernels

Kokkos C++ Performance Portability Programming Ecosystem: Math Kernels - Provides BLAS, Sparse BLAS and Graph Kernels
Other
311 stars 98 forks source link

KokkosSparse_gauss_seidel_spec.hpp not compiling #978

Open jrobcary opened 3 years ago

jrobcary commented 3 years ago

With the fixes, kokkos PRs 4014 and 4029, kokkos-kernels PR #958, and and trilinos PR 9123, this is the last remaining issue for building the new trilinos stack on Windows-LLVM without CUDA.

In file included from E:\vpad2\trilinos\ser\packages\kokkos-kernels\src\impl\generated_specializations_cpp\gauss_seidel_apply\Sparse_gauss_seidel_apply_eti_DOUBLE_ORDINAL_INT_OFFSET_SIZE_T_LAYOUTLEFT_EXECSPACE_SERIAL_MEMSPACE_HOSTSPACE_MEMSPACE_HOSTSPACE.cpp:48: In file included from D:\winsame\cary\vorpalall-dev2\trilinos\packages\kokkos-kernels\src\sparse\impl\KokkosSparse_gauss_seidel_spec.hpp:54:^M In file included from D:\winsame\cary\vorpalall-dev2\trilinos\packages\kokkos-kernels\src\sparse\impl/KokkosSparse_gauss_seidel_impl.hpp:55: D:\winsame\cary\vorpalall-dev2\trilinos\packages\kokkos-kernels\src\graph\KokkosGraph_Distance1Color.hpp(80,7): error: expected unqualified-id^M <typename KernelHandle::GraphColoringHandleType, lno_row_viewt, lno_nnz_viewt> BaseGraphColoring; D:\winsame\cary\vorpalall-dev2\trilinos\packages\kokkos-kernels\src\graph\KokkosGraph_Distance1Color.hpp(81,3): error: unknown type name 'BaseGraphColoring' BaseGraphColoring *gc = NULL;

Will try enabling KokkosKernels_ENABLE_EXPERIMENTAL.

LINK : fatal error LNK1181: cannot open input file 'CMakeFiles\kokkoskernels.dir\impl\generated_specializations_cpp\spgemm_symbolic\Sparse_spgemm_symbolic_eti_FLOAT_ORDINAL_INT_OFFSET_SIZE_T_LAYOUTLEFT_EXECSPACE_OPENMP_MEMSPACE_HOSTSPACE_MEMSPACE_HOSTSPACE.cpp.obj'

I do see the object file where it is supposed to be. Wondering whether there is a bad char somewhere in the name.

These two files are the only ones with KOKKOSKERNELS_GENERATE_ETI using DEVICES_W_SLOW_SPACE in kokkos-kernels/src/CMakeLists.txt. Commenting them out in that file causes build problems downstream.

The configuration line is in the attached file.

grating.txcorp.com-trilinos-ser-config.sh.txt

jrobcary commented 3 years ago

In kokkos-kernels/src/graph it seems that some files have "namespace Experimental" and some do not.

jrobcary commented 3 years ago

Dropping the file not found issue to deal with later as the compilation problem solved. It was fixed by two changes.

  1. Kokkos_Atomic_Fetch_Add.hpp, Kokkos_Atomic_Fetch_Or.hpp, Kokkos_Atomic_Fetch_Sub.hpp had long where they need long long on Windows. This fixed with 356d753152255ae6893bebb67d8ba05918ace6b4 to Kokkos, which is part of PR #4030 to Kokkos.
  2. The other change is to namespace in KokkosGraph_Distance1Color.hpp with ::KokkosGraph::Impl::GraphColor; ie, pull out Experimental, because that is not the namespace declaration. This is not part of a pull request because it looks like kokkos-kernels has changed too much from what is in trilinos/develop. I attach the diff that got this working plus provides some comments about changing namespaces. graph.txt