Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Classes | Enumerations | Functions
Kokkos Namespace Reference

Namespace Kokkos contains the nodes, helpers, linear algebra objects and kernels that constitute the Kokkos package. More...

Classes

class  AltCrsGraph
 Local sparse graph in compressed sparse row format; suitable for host-based Kokkos Nodes. More...
class  AltCrsMatrix
 Local sparse matrix in compressed sparse row format; suitable for host-based Kokkos Nodes. More...
class  AltSparseOps
 Alternate implementation of local sparse matrix-vector multiply and solve routines, for host-based Kokkos Node types. More...
class  CrsGraphBase
 An abstract base class providing a template for Kokkos-level sparse graph objects.The Tpetra classes do not utilize this base class for interacting with Kokkos-level objects, and the local sparse graph objects are there not required to inherit from this interface. However, this class illustrates the methods that are required by Tpetra objects, and therefore provides a potential starting point for extending Tpetra via new local graph and matrix types. More...
class  CrsMatrixBase
 An abstract base class providing a template for Kokkos-level sparse matrix objects.The matrix data is packed into a single contiguous array. The array is of length num-total-nonzeros. Two auxiliary arrays give indices to the beginning of each row, according to the standard compressed sparse row (CSR) format. More...
class  CUSPARSECrsGraph
 CRS sparse graph class supporting the CUSPARSE library. More...
class  CUSPARSECrsMatrix
 CRS sparse matrix class supporting the CUSPARSE library. More...
class  CUSPARSEOps
 Default implementation of sparse matrix-vector multiply and solve routines, for host-based Kokkos Node types. More...
class  CuspCrsGraph
 CRS sparse graph class supporting the Cusp library. More...
class  CuspCrsMatrix
 CRS sparse matrix class supporting the Cusp library. More...
class  CuspOps
 Default implementation of sparse matrix-vector multiply and solve routines, for host-based Kokkos Node types. More...
class  DefaultArithmetic
 A traits class providing a generic arithmetic interface for vectors and multivectors. More...
class  DefaultArithmetic< MultiVector< Scalar, Node > >
 Partial specialization of class DefaultArithmetic for MultiVector<Scalar,Node> More...
class  DefaultBlockSparseOps
 DefaultBlockSparseOps. More...
struct  DefaultKernels
 Traits class providing default kernel types for CRS, block CRS and relaxation kernels. More...
class  DefaultRelaxation
 Various relaxation methods. More...
class  DefaultCrsGraph
 Default implementation of CRS sparse graph, using generic kernels and suitable for host-based nodes. More...
class  DefaultCrsMatrix
 Default implementation of CRS sparse matrix, using generic kernels and suitable for host-based nodes. More...
class  DefaultHostSparseOps
 Default implementation of sparse matrix-vector multiply and solve routines, for host-based Kokkos Node types. More...
class  DefaultHostSparseOps< void, Ordinal, Node, Allocator >
 Partial specialization of DefaultHostSparseOps for Scalar=void. More...
class  MultiVector
 Data structure for vector and multivector data. More...
class  VbrMatrix
 Kokkos variable block row matrix class. More...
class  CUDANodeMemoryModel
 A default implementation of the Node memory architecture for Node with a distinct device memory space allocated by the CUDA runtime. More...
class  CUDANodeCopyBackDeallocator
 Allocator/deallocator with host/device copy-back capability. More...
class  CUDANodeHostPinnedDeallocator
 Allocator/deallocator with pinned-host capability. More...
class  DefaultNode
 Class to specify Kokkos default node type and instantiate the default node. More...
class  ReadyBufferHelper
 A class to assist in readying buffers via the Node::readyBuffers() method. More...
class  ArrayOfViewsHelper
 Helper class for getting an array of views. More...
class  ArrayOfViewsHelperTrivialImpl
 A trivial implementation of ArrayOfViewsHelper, for CPU-only nodes. More...
class  OpenMPNode
 Kokkos Node using OpenMP for parallelization. More...
class  SerialNode
 Kokkos node interface for a serial, CPU node. More...
class  StandardNodeMemoryModel
 A default implementation of the Node memory architecture for a single memory space allocated by standard library calls. More...
class  TBBNode
 Kokkos node interface to the Intel Threading Building Blocks threading library. More...
class  ThrustGPUNode
 Kokkos node interface to the Thrust library for NVIDIA CUDA-capable GPUs. More...
class  TPINode
 Kokkos node interface to the ThreadPool threading library. More...

Enumerations

enum  ReadWriteOption { ReadWrite, WriteOnly }

Functions

template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void densematvec (Ordinal Nrows, Ordinal Ncols, RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void densematvec_skipdiag (Ordinal N, RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void solve_block_upper (Ordinal N, const Scalar *A, RangeScalar *y)
template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void solve_block_upper_transpose (Ordinal N, const Scalar *A, RangeScalar *y)
template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void solve_block_lower (Ordinal N, const Scalar *A, RangeScalar *y)
template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void solve_block_lower_transpose (Ordinal N, const Scalar *A, RangeScalar *y)
template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void densematvec_trans (Ordinal Nrows, Ordinal Ncols, RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_1x1 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_2x2 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_3x3 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_4x4 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_trans_2x2 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_trans_3x3 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)
template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void dense_matvec_trans_4x4 (RangeScalar alpha, const Scalar *A, const DomainScalar *x, RangeScalar *y)

Detailed Description

Namespace Kokkos contains the nodes, helpers, linear algebra objects and kernels that constitute the Kokkos package.

Kokkos namespace

Namespace for Kokkos classes and methods.


Enumeration Type Documentation

Read/write options for non-const views.

Enumerator:
ReadWrite 

Indicates that the view may be safely read and written.

WriteOnly 

Indicates that the contents of the view are undefined until set on the host.

Definition at line 53 of file Kokkos_NodeAPIConfigDefs.hpp.


Function Documentation

template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::densematvec ( Ordinal  Nrows,
Ordinal  Ncols,
RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 65 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::densematvec_skipdiag ( Ordinal  N,
RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x but skip the diagonal of A. (Used by the solve operation.)

Definition at line 81 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void Kokkos::solve_block_upper ( Ordinal  N,
const Scalar *  A,
RangeScalar *  y 
) [inline]

Solve square dense upper-triangular matrix. On entry y is the rhs, on exit y is the solution.

Definition at line 101 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void Kokkos::solve_block_upper_transpose ( Ordinal  N,
const Scalar *  A,
RangeScalar *  y 
) [inline]

Transpose-Solve square dense upper-triangular matrix. On entry y is the rhs, on exit y is the solution.

Definition at line 117 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void Kokkos::solve_block_lower ( Ordinal  N,
const Scalar *  A,
RangeScalar *  y 
) [inline]

Solve square dense lower-triangular matrix. On entry y is the rhs, on exit y is the solution.

Definition at line 133 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class RangeScalar >
KERNEL_PREFIX void Kokkos::solve_block_lower_transpose ( Ordinal  N,
const Scalar *  A,
RangeScalar *  y 
) [inline]

Transpose-Solve square dense lower-triangular matrix. On entry y is the rhs, on exit y is the solution.

Definition at line 149 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class Ordinal , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::densematvec_trans ( Ordinal  Nrows,
Ordinal  Ncols,
RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense transpose-matrix-vector product y = A*x

Definition at line 163 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_1x1 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 178 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_2x2 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 187 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_3x3 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 197 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_4x4 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 208 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_trans_2x2 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 220 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_trans_3x3 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 230 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

template<class Scalar , class DomainScalar , class RangeScalar >
KERNEL_PREFIX void Kokkos::dense_matvec_trans_4x4 ( RangeScalar  alpha,
const Scalar *  A,
const DomainScalar *  x,
RangeScalar *  y 
) [inline]

Form dense matrix-vector product y = A*x

Definition at line 241 of file Kokkos_DefaultBlockSparseKernelOps.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends