コード例 #1
0
*/

// Including this is the easy way to get access to all the Node types.
#include "Kokkos_DefaultNode.hpp"

// Don't bother compiling anything, or even including anything else,
// unless KokkosThreadsWrapperNode is enabled.
#if defined(HAVE_KOKKOSCLASSIC_KOKKOSCOMPAT) && defined(KOKKOS_HAVE_PTHREAD)
#include "Tpetra_CrsMatrix.hpp"

#ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION

#include "Tpetra_ETIHelperMacros.h"
#include "Tpetra_CrsMatrix_def.hpp"

#define TPETRA_CRSMATRIX_THREADSWRAPPERNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_INSTANT( SCALAR, LO, GO, Kokkos::Compat::KokkosThreadsWrapperNode )

namespace Tpetra {

 TPETRA_ETI_MANGLING_TYPEDEFS()

 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_THREADSWRAPPERNODE_INSTANT)

 // convert() gets instantiated in a separate file, Tpetra_CrsMatrix_convert.cpp

} // namespace Tpetra

#endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
#endif // HAVE_KOKKOSCLASSIC_KOKKOSCOMPAT && KOKKOS_HAVE_PTHREAD
コード例 #2
0
#ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION

#include "Tpetra_ETIHelperMacros.h"
#include "Tpetra_CrsMatrix_def.hpp"
#include "Tpetra_CrsGraph_def.hpp"

#define TPETRA_CRSMATRIX_OPENMPNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_INSTANT( SCALAR, LO, GO, KokkosClassic::OpenMPNode )

#define TPETRA_CRSMATRIX_IMPORT_AND_FILL_COMPLETE_OPENMPNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_IMPORT_AND_FILL_COMPLETE_INSTANT( SCALAR, LO, GO, KokkosClassic::OpenMPNode )

#define TPETRA_CRSMATRIX_EXPORT_AND_FILL_COMPLETE_OPENMPNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_EXPORT_AND_FILL_COMPLETE_INSTANT( SCALAR, LO, GO, KokkosClassic::OpenMPNode )

namespace Tpetra {

 TPETRA_ETI_MANGLING_TYPEDEFS()

 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_OPENMPNODE_INSTANT)
 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_IMPORT_AND_FILL_COMPLETE_OPENMPNODE_INSTANT)
 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_EXPORT_AND_FILL_COMPLETE_OPENMPNODE_INSTANT)

 // convert() gets instantiated in a separate file, Tpetra_CrsMatrix_convert.cpp

} // namespace Tpetra

#endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
#endif // HAVE_KOKKOSCLASSIC_OPENMP

コード例 #3
0
// Don't bother compiling anything, or even including anything else,
// unless KokkosOpenMPWrapperNode is enabled.
#if defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_TPETRA_INST_OPENMP)

#include "Tpetra_CrsGraph_decl.hpp"
#include "TpetraCore_ETIHelperMacros.h"
#include "Tpetra_CrsGraph_def.hpp"

// The first macro instantiates just the graph stuff.  The second
// instantiates CrsGraph methods templated on Scalar type that
// CrsMatrix needs.  The two must be handled separately, to avoid link
// errors resulting from redundant instantiations.

#define TPETRA_CRSGRAPH_GRAPH_INSTANT_OPENMPWRAPPERNODE( LO, GO ) \
  TPETRA_CRSGRAPH_GRAPH_INSTANT( LO, GO, Kokkos::Compat::KokkosOpenMPWrapperNode )

#define TPETRA_CRSGRAPH_INSTANT_OPENMPWRAPPERNODE( SCALAR, LO, GO ) \
  TPETRA_CRSGRAPH_INSTANT( SCALAR, LO, GO, Kokkos::Compat::KokkosOpenMPWrapperNode )

namespace Tpetra {

  TPETRA_ETI_MANGLING_TYPEDEFS()

  TPETRA_INSTANTIATE_LG(TPETRA_CRSGRAPH_GRAPH_INSTANT_OPENMPWRAPPERNODE)

  TPETRA_INSTANTIATE_SLG(TPETRA_CRSGRAPH_INSTANT_OPENMPWRAPPERNODE)

} // namespace Tpetra

#endif // defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_TPETRA_INST_OPENMP)
コード例 #4
0
*/

// Including this is the easy way to get access to all the Node types.
#include "Kokkos_DefaultNode.hpp"

// Don't bother compiling anything, or even including anything else,
// unless KokkosThreadsWrapperNode is enabled.
#if defined(HAVE_KOKKOSCLASSIC_KOKKOSCOMPAT) && defined(KOKKOS_HAVE_CUDA)
#include "Tpetra_CrsMatrix.hpp"

#ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION

#include "Tpetra_ETIHelperMacros.h"
#include "Tpetra_CrsMatrix_def.hpp"

#define TPETRA_CRSMATRIX_CUDAWRAPPERNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_INSTANT( SCALAR, LO, GO, Kokkos::Compat::KokkosCudaWrapperNode )

namespace Tpetra {

 TPETRA_ETI_MANGLING_TYPEDEFS()

 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_CUDAWRAPPERNODE_INSTANT)

 // convert() gets instantiated in a separate file, Tpetra_CrsMatrix_convert.cpp

} // namespace Tpetra

#endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
#endif // HAVE_KOKKOSCLASSIC_KOKKOSCOMPAT && KOKKOS_HAVE_CUDA
コード例 #5
0
// Don't bother compiling anything, or even including anything else,
// unless KokkosCudaWrapperNode is enabled.
#if defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_TPETRA_INST_CUDA)

#include "Tpetra_CrsGraph_decl.hpp"
#include "TpetraCore_ETIHelperMacros.h"
#include "Tpetra_CrsGraph_def.hpp"

// The first macro instantiates just the graph stuff.  The second
// instantiates CrsGraph methods templated on Scalar type that
// CrsMatrix needs.  The two must be handled separately, to avoid link
// errors resulting from redundant instantiations.

#define TPETRA_CRSGRAPH_GRAPH_INSTANT_CUDAWRAPPERNODE( LO, GO ) \
  TPETRA_CRSGRAPH_GRAPH_INSTANT( LO, GO, Kokkos::Compat::KokkosCudaWrapperNode )

#define TPETRA_CRSGRAPH_INSTANT_CUDAWRAPPERNODE( SCALAR, LO, GO ) \
  TPETRA_CRSGRAPH_INSTANT( SCALAR, LO, GO, Kokkos::Compat::KokkosCudaWrapperNode )

namespace Tpetra {

  TPETRA_ETI_MANGLING_TYPEDEFS()

  TPETRA_INSTANTIATE_LG(TPETRA_CRSGRAPH_GRAPH_INSTANT_CUDAWRAPPERNODE)

  TPETRA_INSTANTIATE_SLG(TPETRA_CRSGRAPH_INSTANT_CUDAWRAPPERNODE)

} // namespace Tpetra

#endif // defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_TPETRA_INST_CUDA)
コード例 #6
0
// Don't bother compiling anything, or even including anything else,
// unless TBBNode is enabled.
#if defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_KOKKOSCLASSIC_TBB)

#include "Tpetra_CrsGraph_decl.hpp"
#include "TpetraCore_ETIHelperMacros.h"
#include "Tpetra_CrsGraph_def.hpp"

// The first macro instantiates just the graph stuff.  The second
// instantiates CrsGraph methods templated on Scalar type that
// CrsMatrix needs.  The two must be handled separately, to avoid link
// errors resulting from redundant instantiations.

#define TPETRA_CRSGRAPH_GRAPH_INSTANT_TBBNODE( LO, GO ) \
  TPETRA_CRSGRAPH_GRAPH_INSTANT( LO, GO, KokkosClassic::DoNotUse::TBBNode )

#define TPETRA_CRSGRAPH_INSTANT_TBBNODE( SCALAR, LO, GO ) \
  TPETRA_CRSGRAPH_INSTANT( SCALAR, LO, GO, KokkosClassic::DoNotUse::TBBNode )

namespace Tpetra {

  TPETRA_ETI_MANGLING_TYPEDEFS()

  TPETRA_INSTANTIATE_LG(TPETRA_CRSGRAPH_GRAPH_INSTANT_TBBNODE)

  TPETRA_INSTANTIATE_SLG(TPETRA_CRSGRAPH_INSTANT_TBBNODE)

} // namespace Tpetra

#endif // defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_KOKKOSCLASSIC_TBB)
コード例 #7
0
// ************************************************************************
// @HEADER
*/

// Including this is the easy way to get access to all the Node types.
#include "Kokkos_DefaultNode.hpp"

// Don't bother compiling anything, or even including anything else,
// unless TPINode is enabled.
#ifdef HAVE_KOKKOSCLASSIC_THREADPOOL
#  include "Tpetra_MultiVector.hpp"

#  ifdef HAVE_TPETRA_EXPLICIT_INSTANTIATION

#    include "Tpetra_ETIHelperMacros.h"
#    include "Tpetra_MultiVector_def.hpp"

#    define TPETRA_MULTIVECTOR_TPINODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_MULTIVECTOR_INSTANT( SCALAR, LO, GO, KokkosClassic::TPINode )

namespace Tpetra {

  TPETRA_ETI_MANGLING_TYPEDEFS()

  TPETRA_INSTANTIATE_SLG(TPETRA_MULTIVECTOR_TPINODE_INSTANT)

} // namespace Tpetra

#  endif // HAVE_TPETRA_EXPLICIT_INSTANTIATION
#endif // HAVE_KOKKOSCLASSIC_THREADPOOL
コード例 #8
0
// ************************************************************************
// @HEADER
*/

// Including this is the easy way to get access to all the Node types.
#include <Kokkos_DefaultNode.hpp>
#include <Tpetra_ConfigDefs.hpp>

// Don't bother compiling anything, or even including anything else,
// unless SerialNode is enabled.
#if defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_KOKKOSCLASSIC_SERIAL)

#include "Tpetra_CrsMatrix_decl.hpp"
#include "TpetraCore_ETIHelperMacros.h"
#include "Tpetra_CrsMatrix_def.hpp"

#define TPETRA_CRSMATRIX_SERIALNODE_INSTANT( SCALAR, LO, GO ) \
  TPETRA_CRSMATRIX_INSTANT( SCALAR, LO, GO, KokkosClassic::DoNotUse::SerialNode )

namespace Tpetra {

 TPETRA_ETI_MANGLING_TYPEDEFS()

 TPETRA_INSTANTIATE_SLG(TPETRA_CRSMATRIX_SERIALNODE_INSTANT)

 // convert() gets instantiated in a separate file, Tpetra_CrsMatrix_convert.cpp

} // namespace Tpetra

#endif // defined(HAVE_TPETRA_EXPLICIT_INSTANTIATION) && defined(HAVE_KOKKOSCLASSIC_SERIAL)