Commit 97ed757d authored by crtrott's avatar crtrott
Browse files

Kokkos-Kernels: Adding Kokkos-Kernels as a stand-alone package

Kokkos-Kernels was moved from its previous location tpetra/kernels
to kokkos-kernels and now is its own package. Testing was performed
on multiple platforms with gcc, intel and cuda, also debug mode.
As far as I can tell the have the same errors as on current develop.
I.e. hopefully nothing related to this switch. Testing was done with
the samplescripts/Sandia-Sems/configure-testbeds-jenkins-all script.
parent badb4110
......@@ -62,6 +62,7 @@ TRIBITS_REPOSITORY_DEFINE_PACKAGES(
ThreadPool packages/ThreadPool PT # Depends on Pthreads
Kokkos packages/kokkos PT
Teuchos packages/teuchos PT
KokkosKernels packages/kokkos-kernels PT
RTOp packages/rtop PT
Sacado packages/sacado PT
MiniTensor packages/minitensor PT
......
SET(LIB_REQUIRED_DEP_PACKAGES Belos Teuchos Tpetra TpetraKernels)
SET(LIB_REQUIRED_DEP_PACKAGES Belos Teuchos Tpetra KokkosKernels)
SET(LIB_OPTIONAL_DEP_PACKAGES Xpetra Zoltan2 ThyraTpetraAdapters Amesos2 ShyLUBasker ShyLUHTS)
SET(TEST_REQUIRED_DEP_PACKAGES Belos Galeri)
SET(TEST_OPTIONAL_DEP_PACKAGES Amesos2 ShyLUBasker ShyLUHTS ML)
......
# Standard ignores
*~
*.pyc
\#*#
.#*
.*.swp
.cproject
.project
INCLUDE(TribitsETISupport)
#
# Define the subpackage
# Define the package
#
TRIBITS_SUBPACKAGE(Kernels)
TRIBITS_PACKAGE(KokkosKernels)
# Define ${PACKAGE_NAME}_ENABLE_EXPLICIT_INSTANTIATION,
# which defaults to ${PROJECT_NAME}_ENABLE_EXPLICIT_INSTANTIATION.
......@@ -13,7 +13,7 @@ TRIBITS_ADD_EXPLICIT_INSTANTIATION_OPTION()
# template instantiation (ETI).
TRIBITS_ADD_ETI_SUPPORT()
# If building in debug mode, define the HAVE_TPETRAKERNELS_DEBUG macro.
# If building in debug mode, define the HAVE_KOKKOSKERNELS_DEBUG macro.
TRIBITS_ADD_DEBUG_OPTION()
#
......@@ -21,7 +21,7 @@ TRIBITS_ADD_DEBUG_OPTION()
#
#
# "Optimization level" for TpetraKernels computational kernels. The
# "Optimization level" for KokkosKernels computational kernels. The
# higher the level, the more code variants get generated, and thus the
# longer the compile times. However, more code variants mean both
# better performance overall, and more uniform performance for corner
......@@ -29,7 +29,7 @@ TRIBITS_ADD_DEBUG_OPTION()
#
TRIBITS_ADD_OPTION_AND_DEFINE( KokkosLinAlg_Opt_Level
KOKKOSLINALG_OPT_LEVEL
"Optimization level for TpetraKernels computational kernels: a nonnegative integer. Higher levels result in better performance that is more uniform for corner cases, but increase build time and library size. The default value is 1, which should give performance within ten percent of optimal on most platforms, for most problems."
"Optimization level for KokkosKernels computational kernels: a nonnegative integer. Higher levels result in better performance that is more uniform for corner cases, but increase build time and library size. The default value is 1, which should give performance within ten percent of optimal on most platforms, for most problems."
"1"
)
......@@ -37,74 +37,84 @@ TRIBITS_ADD_OPTION_AND_DEFINE( KokkosLinAlg_Opt_Level
# time. Default is no.
TRIBITS_ADD_OPTION_AND_DEFINE(
${PACKAGE_NAME}_ENABLE_Experimental
HAVE_TPETRAKERNELS_EXPERIMENTAL
"Enable building and installation of experimental TpetraKernels features."
HAVE_KOKKOSKERNELS_EXPERIMENTAL
"Enable building and installation of experimental KokkosKernels features."
NO )
ASSERT_DEFINED (Tpetra_INST_CUDA)
ASSERT_DEFINED (Kokkos_ENABLE_Cuda)
TRIBITS_ADD_OPTION_AND_DEFINE(
${PACKAGE_NAME}_ENABLE_EXECUTION_SPACE_CUDA
TPETRAKERNELS_BUILD_EXECUTION_SPACE_CUDA
KOKKOSKERNELS_BUILD_EXECUTION_SPACE_CUDA
"Whether to build kernels for the execution space Kokkos::Cuda. This option is Tpetra_INST_CUDA=${Tpetra_INST_CUDA} by default. If expliict template instantiation (ETI) is enabled in Trilinos, disabling this when Tpetra_INST_CUDA is enabled will make Tpetra build times longer."
${Tpetra_INST_CUDA}
${Kokkos_ENABLE_Cuda}
)
ASSERT_DEFINED (Tpetra_INST_OPENMP)
ASSERT_DEFINED (Kokkos_ENABLE_OpenMP)
TRIBITS_ADD_OPTION_AND_DEFINE(
${PACKAGE_NAME}_ENABLE_EXECUTION_SPACE_OPENMP
TPETRAKERNELS_BUILD_EXECUTION_SPACE_OPENMP
KOKKOSKERNELS_BUILD_EXECUTION_SPACE_OPENMP
"Whether to build kernels for the execution space Kokkos::OpenMP. This option is Tpetra_INST_OPENMP=${Tpetra_INST_OPENMP} by default. If expliict template instantiation (ETI) is enabled in Trilinos, disabling this when Tpetra_INST_OPENMP is enabled will make Tpetra build times longer."
${Tpetra_INST_OPENMP}
${Kokkos_ENABLE_OpenMP}
)
ASSERT_DEFINED (Tpetra_INST_PTHREAD)
ASSERT_DEFINED (Kokkos_ENABLE_Pthread)
TRIBITS_ADD_OPTION_AND_DEFINE(
${PACKAGE_NAME}_ENABLE_EXECUTION_SPACE_PTHREAD
TPETRAKERNELS_BUILD_EXECUTION_SPACE_PTHREAD
KOKKOSKERNELS_BUILD_EXECUTION_SPACE_PTHREAD
"Whether to build kernels for the execution space Kokkos::Threads. This option is Tpetra_INST_PTHREAD=${Tpetra_INST_PTHREAD} by default. If expliict template instantiation (ETI) is enabled in Trilinos, disabling this when Tpetra_INST_PTHREAD is enabled will make Tpetra build times longer."
${Tpetra_INST_PTHREAD}
${Kokkos_ENABLE_Pthread}
)
ASSERT_DEFINED (Tpetra_INST_SERIAL)
ASSERT_DEFINED (Kokkos_ENABLE_Serial)
TRIBITS_ADD_OPTION_AND_DEFINE(
${PACKAGE_NAME}_ENABLE_EXECUTION_SPACE_SERIAL
TPETRAKERNELS_BUILD_EXECUTION_SPACE_SERIAL
KOKKOSKERNELS_BUILD_EXECUTION_SPACE_SERIAL
"Whether to build kernels for the execution space Kokkos::Serial. This option is Tpetra_INST_SERIAL=${Tpetra_INST_SERIAL} by default. If expliict template instantiation (ETI) is enabled in Trilinos, disabling this when Tpetra_INST_SERIAL is enabled will make Tpetra build times longer."
${Tpetra_INST_SERIAL}
${Kokkos_ENABLE_Serial}
)
# ==================================================================
# Explicit template instantiation (ETI) and test instantiation logic
# ==================================================================
SET(${PACKAGE_NAME}_ETI_SCALARS "")
SET(${PACKAGE_NAME}_ETI_LORDS "")
SET(${PACKAGE_NAME}_ETI_DEVICES "")
# tpetra/CMakeLists.txt (the package's CMake logic) defines these
# variables. Despite "ETI" in their names, they exist whether or not
# ETI is defined. If ETI is defined, these variables govern the set
# of template parameter combinations over which Tpetra instantiates.
# Whether or not ETI is defined, the variables govern the set of
# template parameter combinations over which Tpetra runs tests.
ASSERT_DEFINED (Tpetra_ETI_SCALARS_KOKKOS)
ASSERT_DEFINED (Tpetra_ETI_SCALARS_KOKKOS_NO_ORDS)
ASSERT_DEFINED (Tpetra_ETI_SCALARS_KOKKOS_ORDS)
ASSERT_DEFINED (Tpetra_ETI_LORDS)
ASSERT_DEFINED (Tpetra_ETI_DEVICES)
# mfh 11 Oct 2016: Use Kokkos versions of Scalar types for ETI.
# In particular, use Kokkos::complex<T> in place of std::complex<T>.
SET(${PACKAGE_NAME}_ETI_SCALARS "${Tpetra_ETI_SCALARS_KOKKOS}")
# Exclude all ordinal types (GlobalOrdinal and int).
SET(${PACKAGE_NAME}_ETI_SCALARS_NO_ORDS "${Tpetra_ETI_SCALARS_KOKKOS_NO_ORDS}")
# Include ONLY ordinal types (GlobalOrdinal and int).
SET(${PACKAGE_NAME}_ETI_SCALARS_ORDS "${Tpetra_ETI_SCALARS_KOKKOS_ORDS}")
SET(${PACKAGE_NAME}_ETI_LORDS "${Tpetra_ETI_LORDS}")
SET(${PACKAGE_NAME}_ETI_DEVICES "${Tpetra_ETI_DEVICES}")
# ============================================================
# Kokkos execution space types
# ============================================================
#
# Construct the list of enabled Device types.
#
IF(KokkosKernels_ENABLE_EXECUTION_SPACE_SERIAL)
LIST(APPEND ${PACKAGE_NAME}_ETI_DEVICES "Kokkos::Device<Kokkos::Serial, Kokkos::HostSpace>")
ENDIF()
IF(KokkosKernels_ENABLE_EXECUTION_SPACE_PTHREAD)
LIST(APPEND ${PACKAGE_NAME}_ETI_DEVICES "Kokkos::Device<Kokkos::Threads, Kokkos::HostSpace>")
ENDIF()
IF(KokkosKernels_ENABLE_EXECUTION_SPACE_OPENMP)
LIST(APPEND ${PACKAGE_NAME}_ETI_DEVICES "Kokkos::Device<Kokkos::OpenMP, Kokkos::HostSpace>")
ENDIF()
IF(KokkosKernels_ENABLE_EXECUTION_SPACE_CUDA)
LIST(APPEND ${PACKAGE_NAME}_ETI_DEVICES "Kokkos::Device<Kokkos::Cuda, Kokkos::CudaSpace>")
LIST(APPEND ${PACKAGE_NAME}_ETI_DEVICES "Kokkos::Device<Kokkos::Cuda, Kokkos::CudaUVMSpace>")
ENDIF()
# ============================================================
# LocalOrdinal types
# ============================================================
# FIXME (mfh 16 Oct 2015) Tpetra currently only supports LocalOrdinal
# = int. At some point, the list of allowed LocalOrdinal types will
# expand to include 64-bit signed integer types.
LIST (APPEND ${PACKAGE_NAME}_ETI_LORDS "int")
LIST (APPEND ${PACKAGE_NAME}_ETI_SCALARS "double")
# "Export" the names for use in the ETI system.
# If we don't do this, ETI won't see these variables.
GLOBAL_SET(${PACKAGE_NAME}_ETI_SCALARS ${${PACKAGE_NAME}_ETI_SCALARS})
GLOBAL_SET(${PACKAGE_NAME}_ETI_SCALARS_NO_ORDS ${${PACKAGE_NAME}_ETI_SCALARS_NO_ORDS})
GLOBAL_SET(${PACKAGE_NAME}_ETI_SCALARS_ORDS ${${PACKAGE_NAME}_ETI_SCALARS_ORDS})
GLOBAL_SET(${PACKAGE_NAME}_ETI_GORDS ${${PACKAGE_NAME}_ETI_GORDS})
GLOBAL_SET(${PACKAGE_NAME}_ETI_LORDS ${${PACKAGE_NAME}_ETI_LORDS})
GLOBAL_SET(${PACKAGE_NAME}_ETI_DEVICES ${${PACKAGE_NAME}_ETI_DEVICES})
......@@ -118,5 +128,5 @@ TRIBITS_ADD_TEST_DIRECTORIES(perf_test)
TRIBITS_ADD_TEST_DIRECTORIES(unit_test)
TRIBITS_ADD_EXAMPLE_DIRECTORIES(example)
TRIBITS_SUBPACKAGE_POSTPROCESS()
TRIBITS_PACKAGE_POSTPROCESS()
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,12 +2,14 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
//
// KokkosKernels is licensed under 3-clause BSD terms of use:
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
......@@ -41,24 +43,3 @@
//@HEADER
*/
#ifndef __KOKKOSKERNELS_VECTOR_HPP__
#define __KOKKOSKERNELS_VECTOR_HPP__
/// \author Kyungjoo Kim (kyukim@sandia.gov)
#include "KokkosKernels_Util.hpp"
namespace KokkosKernels {
template<typename T>
class Vector;
}
#include "KokkosKernels_Vector_SIMD.hpp"
#include "KokkosKernels_Vector_AVX256D.hpp"
#include "KokkosKernels_Vector_AVX512D.hpp"
#endif
The Kernels subpackage of Tpetra ("TpetraKernels"/"KokkosKernels")
contains local computational kernels. "Local" means no MPI or other
distributed-memory communication. "Computational kernels" are coarse-grained
operations; they take a lot of work and make sense to parallelize inside using
Kokkos. Computational kernels in this subpackage include the following:
KokkosKernels provides dense and sparse linear algebra as well graph computing
local computational kernels using the Kokkos programming model.
"Local" means no MPI or other distributed-memory communication.
"Computational kernels" are coarse-grained operations; they take a lot of work
and make sense to parallelize inside using Kokkos.
Computational kernels in this subpackage include the following:
- (Multi)vector dot products, norms, and updates (AXPY-like
operations that add vectors together entry-wise)
......@@ -11,6 +13,9 @@ The Kernels subpackage of Tpetra ("TpetraKernels"/"KokkosKernels")
- Other operations that the Core subpackage of Tpetra (TpetraCore)
needs
Kokkos is licensed under standard 3-clause BSD terms of use. For specifics
see the LICENSE file contained in the repository or distribution.
We organize this directory as follows:
1. Public interfaces to computational kernels live in the src/
......
......@@ -47,7 +47,7 @@ ENDIF()
#
# Tpetra ETI type fields. S, LO, D correspond to the template
# parameters Scalar, LocalOrdinal, and DeviceType. TpetraKernels does
# parameters Scalar, LocalOrdinal, and DeviceType. KokkosKernels does
# not need to know about GlobalOrdinal so we omit that.
SET(${PACKAGE_NAME}_ETI_FIELDS "S|LO|D")
......@@ -122,10 +122,10 @@ TRIBITS_ETI_GENERATE_MACROS(
"${${PACKAGE_NAME}_ETI_EXCLUDE_SET};${${PACKAGE_NAME}_ETI_EXCLUDE_SET_ORDINAL_SCALAR}"
list_of_manglings
eti_typedefs
"TPETRAKERNELS_INSTANTIATE_SLD_NO_ORDINAL_SCALAR(S,LO,D)" TPETRAKERNELS_INSTANTIATE_SLD_NO_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_SL_NO_ORDINAL_SCALAR(S,LO)" TPETRAKERNELS_INSTANTIATE_SL_NO_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_SD_NO_ORDINAL_SCALAR(S,D)" TPETRAKERNELS_INSTANTIATE_SD_NO_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_S_NO_ORDINAL_SCALAR(S)" TPETRAKERNELS_INSTANTIATE_S_NO_ORDINAL_SCALAR)
"KOKKOSKERNELS_INSTANTIATE_SLD_NO_ORDINAL_SCALAR(S,LO,D)" KOKKOSKERNELS_INSTANTIATE_SLD_NO_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_SL_NO_ORDINAL_SCALAR(S,LO)" KOKKOSKERNELS_INSTANTIATE_SL_NO_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_SD_NO_ORDINAL_SCALAR(S,D)" KOKKOSKERNELS_INSTANTIATE_SD_NO_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_S_NO_ORDINAL_SCALAR(S)" KOKKOSKERNELS_INSTANTIATE_S_NO_ORDINAL_SCALAR)
# Generate macros include ONLY possible ordinal types in the list of Scalar types.
TRIBITS_ETI_GENERATE_MACROS(
......@@ -134,10 +134,10 @@ TRIBITS_ETI_GENERATE_MACROS(
"${${PACKAGE_NAME}_ETI_EXCLUDE_SET}"
list_of_manglings
eti_typedefs
"TPETRAKERNELS_INSTANTIATE_SLD_ORDINAL_SCALAR(S,LO,D)" TPETRAKERNELS_INSTANTIATE_SLD_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_SL_ORDINAL_SCALAR(S,LO)" TPETRAKERNELS_INSTANTIATE_SL_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_SD_ORDINAL_SCALAR(S,D)" TPETRAKERNELS_INSTANTIATE_SD_ORDINAL_SCALAR
"TPETRAKERNELS_INSTANTIATE_S_ORDINAL_SCALAR(S)" TPETRAKERNELS_INSTANTIATE_S_ORDINAL_SCALAR)
"KOKKOSKERNELS_INSTANTIATE_SLD_ORDINAL_SCALAR(S,LO,D)" KOKKOSKERNELS_INSTANTIATE_SLD_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_SL_ORDINAL_SCALAR(S,LO)" KOKKOSKERNELS_INSTANTIATE_SL_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_SD_ORDINAL_SCALAR(S,D)" KOKKOSKERNELS_INSTANTIATE_SD_ORDINAL_SCALAR
"KOKKOSKERNELS_INSTANTIATE_S_ORDINAL_SCALAR(S)" KOKKOSKERNELS_INSTANTIATE_S_ORDINAL_SCALAR)
# Generate macros that include all Scalar types (if applicable),
# including possible ordinal types.
......@@ -147,20 +147,20 @@ TRIBITS_ETI_GENERATE_MACROS(
"${${PACKAGE_NAME}_ETI_EXCLUDE_SET}"
list_of_manglings
eti_typedefs
"TPETRAKERNELS_INSTANTIATE_SLD(S,LO,D)" TPETRAKERNELS_INSTANTIATE_SLD
"TPETRAKERNELS_INSTANTIATE_SL(S,LO)" TPETRAKERNELS_INSTANTIATE_SL
"TPETRAKERNELS_INSTANTIATE_SD(S,D)" TPETRAKERNELS_INSTANTIATE_SD
"TPETRAKERNELS_INSTANTIATE_S(S)" TPETRAKERNELS_INSTANTIATE_S
"TPETRAKERNELS_INSTANTIATE_LD(LO,D)" TPETRAKERNELS_INSTANTIATE_LD
"TPETRAKERNELS_INSTANTIATE_L(LO)" TPETRAKERNELS_INSTANTIATE_L
"TPETRAKERNELS_INSTANTIATE_D(D)" TPETRAKERNELS_INSTANTIATE_D)
"KOKKOSKERNELS_INSTANTIATE_SLD(S,LO,D)" KOKKOSKERNELS_INSTANTIATE_SLD
"KOKKOSKERNELS_INSTANTIATE_SL(S,LO)" KOKKOSKERNELS_INSTANTIATE_SL
"KOKKOSKERNELS_INSTANTIATE_SD(S,D)" KOKKOSKERNELS_INSTANTIATE_SD
"KOKKOSKERNELS_INSTANTIATE_S(S)" KOKKOSKERNELS_INSTANTIATE_S
"KOKKOSKERNELS_INSTANTIATE_LD(LO,D)" KOKKOSKERNELS_INSTANTIATE_LD
"KOKKOSKERNELS_INSTANTIATE_L(LO)" KOKKOSKERNELS_INSTANTIATE_L
"KOKKOSKERNELS_INSTANTIATE_D(D)" KOKKOSKERNELS_INSTANTIATE_D)
# Generate "mangled" typedefs. Macros sometimes get grumpy when types
# have spaces, colons, or angle brackets in them. This includes types
# like "long long" or "std::complex<double>". Thus, we define
# typedefs that remove the offending characters. The typedefs also
# get written to the generated header file.
TRIBITS_ETI_GENERATE_TYPEDEF_MACRO(TPETRAKERNELS_ETI_MANGLING_TYPEDEFS "TPETRAKERNELS_ETI_MANGLING_TYPEDEFS" "${eti_typedefs}")
TRIBITS_ETI_GENERATE_TYPEDEF_MACRO(KOKKOSKERNELS_ETI_MANGLING_TYPEDEFS "KOKKOSKERNELS_ETI_MANGLING_TYPEDEFS" "${eti_typedefs}")
# Generate the header file ${PACKAGE_NAME}_ETIHelperMacros.h, from the
# file ${PACKAGE_NAME}_ETIHelperMacros.h.in (that lives in this
......
#ifndef KOKKOSKERNELS_ETIHELPERMACROS_H
#define KOKKOSKERNELS_ETIHELPERMACROS_H
#include "KokkosKernels_config.h"
@KOKKOSKERNELS_INSTANTIATE_SLD@
@KOKKOSKERNELS_INSTANTIATE_SL@
@KOKKOSKERNELS_INSTANTIATE_SD@
@KOKKOSKERNELS_INSTANTIATE_S@
@KOKKOSKERNELS_INSTANTIATE_SLD_NO_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_SL_NO_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_SD_NO_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_S_NO_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_SLD_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_SL_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_SD_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_S_ORDINAL_SCALAR@
@KOKKOSKERNELS_INSTANTIATE_LD@
@KOKKOSKERNELS_INSTANTIATE_L@
@KOKKOSKERNELS_INSTANTIATE_D@
@KOKKOSKERNELS_ETI_MANGLING_TYPEDEFS@
#endif // KOKKOSKERNELS_ETIHELPERMACROS_H
#ifndef TPETRAKERNELS_CONFIG_H
#define TPETRAKERNELS_CONFIG_H
#ifndef KOKKOSKERNELS_CONFIG_H
#define KOKKOSKERNELS_CONFIG_H
/* Define if building in debug mode */
#cmakedefine HAVE_TPETRAKERNELS_DEBUG
#cmakedefine HAVE_KOKKOSKERNELS_DEBUG
/* Define this macro if the quadmath TPL is enabled */
#cmakedefine HAVE_TPETRAKERNELS_QUADMATH
#cmakedefine HAVE_KOKKOSKERNELS_QUADMATH
/* Define this macro if the MKL TPL is enabled. This is different
than just linking against the MKL to get the BLAS and LAPACK; it
requires (a) header file(s) as well, and may use functions other
than just BLAS and LAPACK functions. */
#cmakedefine HAVE_TPETRAKERNELS_MKL
#cmakedefine HAVE_KOKKOSKERNELS_MKL
/* Define this macro if experimental features of Kokkoskernels are enabled */
#cmakedefine HAVE_TPETRAKERNELS_EXPERIMENTAL
#cmakedefine HAVE_KOKKOSKERNELS_EXPERIMENTAL
/* Define this macro to disallow instantiations of kernels which are not covered by ETI */
#cmakedefine HAVE_TPETRAKERNELS_ETI_ONLY
#cmakedefine HAVE_KOKKOSKERNELS_ETI_ONLY
/* Whether to build kernels for execution space Kokkos::Cuda */
#cmakedefine TPETRAKERNELS_BUILD_EXECUTION_SPACE_CUDA
#cmakedefine KOKKOSKERNELS_BUILD_EXECUTION_SPACE_CUDA
/* Whether to build kernels for execution space Kokkos::OpenMP */
#cmakedefine TPETRAKERNELS_BUILD_EXECUTION_SPACE_OPENMP
#cmakedefine KOKKOSKERNELS_BUILD_EXECUTION_SPACE_OPENMP
/* Whether to build kernels for execution space Kokkos::Threads */
#cmakedefine TPETRAKERNELS_BUILD_EXECUTION_SPACE_PTHREAD
#cmakedefine KOKKOSKERNELS_BUILD_EXECUTION_SPACE_PTHREAD
/* Whether to build kernels for execution space Kokkos::Serial */
#cmakedefine TPETRAKERNELS_BUILD_EXECUTION_SPACE_SERIAL
#cmakedefine KOKKOSKERNELS_BUILD_EXECUTION_SPACE_SERIAL
/*
* "Optimization level" for computational kernels in this subpackage.
......@@ -37,4 +37,4 @@
*/
#define KOKKOSLINALG_OPT_LEVEL @KokkosLinAlg_Opt_Level@
#endif // TPETRAKERNELS_CONFIG_H
#endif // KOKKOSKERNELS_CONFIG_H
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
......@@ -2,8 +2,8 @@
//@HEADER
// ************************************************************************
//
// KokkosKernels: Linear Algebra and Graph Kernels
// Copyright 2016 Sandia Corporation
// KokkosKernels 0.9: Linear Algebra and Graph Kernels
// Copyright 2017 Sandia Corporation
//
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
// the U.S. Government retains certain rights in this software.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment