Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #4858

Closed
Open
Created Apr 10, 2019 by James Willenbring@jmwilleMaintainer

ifpack2: build error with scalar=FLOAT and COMPLEX_DOUBLE enabled

Created by: ajpowel

@trilinos/ifpack2

Current Behavior

/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Vector_SIMD_Arith.hpp:619:5: note:   template argument deduction/substitution failed:
In file included from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Gemm_Serial_Internal.hpp:12:0,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Gemm_Serial_Impl.hpp:8,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_BlockTriDiContainer_def.hpp:57,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_BlockTriDiContainer.hpp:2,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_ContainerFactory_def.hpp:51,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_ContainerFactory.hpp:2,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_BlockRelaxation_decl.hpp:52,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_BlockRelaxation.hpp:1,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Details_OneLevelFactory_def.hpp:54,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_Details_OneLevelFactory.hpp:2,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Details_Factory_def.hpp:46,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_Details_Factory.hpp:2,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Factory_decl.hpp:48,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_Factory.hpp:1,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Details_LinearSolverFactory_def.hpp:54,
                 from /scratch/ajpowel/code_032119/packages/ifpack2/src/Ifpack2_Details_LinearSolverFactory.hpp:2,
                 from /scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Details_registerLinearSolverFactory.cpp:45:
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp:1101:67: note:   mismatched types 'Kokkos::complex<RealType1>' and 'double'
       C[0*_cs0+0*_cs1] += alpha * c_00; C[0*_cs0+1*_cs1] += alpha * c_01;
                                                             ~~~~~~^~~~~~
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp: In instantiation of 'int KokkosBatched::Experimental::InnerGemmFixC<mb, nb>::serial_invoke(ScalarType, const ValueType*, const ValueType*, int, ValueType*) [with ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>; int mb = 1; int nb = 1]':
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp:1285:80:   required from 'int KokkosBatched::Experimental::InnerGemmFixC<mb, nb>::serial_invoke(ScalarType, const ValueType*, const ValueType*, int, int, int, ValueType*) [with ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>; int mb = 2; int nb = 2]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp:1259:71:   required from 'int KokkosBatched::Experimental::InnerGemmFixC<mb, nb>::serial_invoke(ScalarType, const ValueType*, const ValueType*, int, int, int, ValueType*) [with ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>; int mb = 3; int nb = 3]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp:1230:71:   required from 'int KokkosBatched::Experimental::InnerGemmFixC<mb, nb>::serial_invoke(ScalarType, const ValueType*, const ValueType*, int, int, int, ValueType*) [with ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>; int mb = 4; int nb = 4]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Gemm_Team_Internal.hpp:139:13:   required from 'KokkosBatched::Experimental::TeamGemmInternal<ArgAlgo>::invoke(const MemberType&, int, int, int, ScalarType, const ValueType*, int, int, const ValueType*, int, int, ScalarType, ValueType*, int, int) [with MemberType = MemberType; ScalarType = ScalarType; ValueType = ValueType; ArgAlgo = KokkosBatched::Experimental::Algo::Level3::Blocked]::<lambda(int, int, int, const ValueType*, const ValueType*, ValueType*)>::<lambda(const int&)> [with MemberType = Kokkos::Impl::HostThreadTeamMember<Kokkos::Serial>; ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Gemm_Team_Internal.hpp:144:44:   required from 'struct KokkosBatched::Experimental::TeamGemmInternal<ArgAlgo>::invoke(const MemberType&, int, int, int, ScalarType, const ValueType*, int, int, const ValueType*, int, int, ScalarType, ValueType*, int, int) [with MemberType = MemberType; ScalarType = ScalarType; ValueType = ValueType; ArgAlgo = KokkosBatched::Experimental::Algo::Level3::Blocked]::<lambda(int, int, int, const ValueType*, const ValueType*, ValueType*)> [with MemberType = Kokkos::Impl::HostThreadTeamMember<Kokkos::Serial>; ScalarType = double; ValueType = KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>]::<lambda(const int&)>'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_Gemm_Team_Internal.hpp:130:11:   [ skipping 12 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos/core/src/Kokkos_Parallel.hpp:191:4:   required from 'void Kokkos::parallel_for(const ExecPolicy&, const FunctorType&, const string&, typename Kokkos::Impl::enable_if<Kokkos::is_execution_policy<ExecPolicy>::value>::type*) [with ExecPolicy = Kokkos::TeamPolicy<Kokkos::Serial, Ifpack2::BlockTriDiContainerDetails::ExtractAndFactorizeTridiags<Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> > >::ExtractAndFactorizeTag>; FunctorType = Ifpack2::BlockTriDiContainerDetails::ExtractAndFactorizeTridiags<Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> > >; std::__cxx11::string = std::__cxx11::basic_string<char>; typename Kokkos::Impl::enable_if<Kokkos::is_execution_policy<ExecPolicy>::value>::type = void]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos/core/src/Kokkos_Parallel.hpp:244:25:   required from 'void Kokkos::parallel_for(const string&, const ExecPolicy&, const FunctorType&) [with ExecPolicy = Kokkos::TeamPolicy<Kokkos::Serial, Ifpack2::BlockTriDiContainerDetails::ExtractAndFactorizeTridiags<Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> > >::ExtractAndFactorizeTag>; FunctorType = Ifpack2::BlockTriDiContainerDetails::ExtractAndFactorizeTridiags<Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> > >; std::__cxx11::string = std::__cxx11::basic_string<char>]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_BlockTriDiContainer_impl.hpp:1826:29:   required from 'void Ifpack2::BlockTriDiContainerDetails::ExtractAndFactorizeTridiags<MatrixType>::run() [with MatrixType = Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_BlockTriDiContainer_impl.hpp:1849:7:   required from 'void Ifpack2::BlockTriDiContainerDetails::performNumericPhase(const Teuchos::RCP<const typename Ifpack2::BlockTriDiContainerDetails::ImplType<MatrixType>::tpetra_block_crs_matrix_type>&, const Ifpack2::BlockTriDiContainerDetails::PartInterface<MatrixType>&, Ifpack2::BlockTriDiContainerDetails::BlockTridiags<MatrixType>&, typename Ifpack2::BlockTriDiContainerDetails::ImplType<MatrixType>::magnitude_type) [with MatrixType = Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >; typename Ifpack2::BlockTriDiContainerDetails::ImplType<MatrixType>::tpetra_block_crs_matrix_type = Tpetra::Experimental::BlockCrsMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >; typename Ifpack2::BlockTriDiContainerDetails::ImplType<MatrixType>::magnitude_type = float]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_BlockTriDiContainer_def.hpp:235:9:   required from 'void Ifpack2::BlockTriDiContainer<MatrixType, Ifpack2::BlockTriDiContainerDetails::ImplSimdTag>::compute() [with MatrixType = Tpetra::RowMatrix<float, int, long long int, Kokkos::Compat::KokkosDeviceWrapperNode<Kokkos::Serial> >]'
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/ifpack2/src/Ifpack2_Details_registerLinearSolverFactory.cpp:76:1:   required from here
/scratch/ajpowel/code_032119/TPLs_src/Trilinos/packages/kokkos-kernels/src/batched/KokkosBatched_InnerGemmFixC_Serial_Impl.hpp:1139:33: error: no match for 'operator*' (operand types are 'const double' and 'KokkosBatched::Experimental::Vector<KokkosBatched::Experimental::SIMD<float>, 16>')
       C[0*_cs0+0*_cs1] += alpha * c_00;
                           ~~~~~~^~~~~~

Steps to Reproduce

  1. Comment out line 986 of $PROJECT/packages/tpetra/CMakeLists.txt (suppressing fail message to prevent possible Thyra build failure)

  2. Configure Trilinos packages:


cmake -DCMAKE_C_COMPILER=mpicc -DCMAKE_CXX_COMPILER=mpicxx -DCMAKE_Fortran_COMPILER=mpifort -DTrilinos_ENABLE_Tpetra=ON -DTrilinos_ENABLE_COMPLEX_DOUBLE=ON -DTrilinos_ENABLE_FLOAT=ON -DTrilinos_ENABLE_Teuchos=ON -DTrilinos_ENABLE_Teko=ON /scratch/ajpowel/code_032119/TPLs_src/Trilinos
  1. Attempt to build ifpack2:
cd $PROJECT/packages/ifpack2
 
make -j 64
Assignee
Assign to
Time tracking