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  CrsGraphHostCompute
 A default host-compute compressed-row sparse graph. More...
class  CrsGraphDeviceCompute
 A default device-compute compressed-row sparse graph.This is externally identical to the host-based graph; in fact, it derives from CrsGraphHostCompute. The difference is that that it contains additional storage and logic for device-bound compute buffers, and it over-rides finalize() to fill these. More...
class  FirstTouchHostCrsGraph
 A host-compute compressed-row sparse graph with first-touch allocation. More...
class  FirstTouchCopyIndicesKernel
class  CrsGraph
 Kokkos compressed-row sparse graph class.Default specialization is a host-bound CrsGraphHostCompute object. More...
class  CrsMatrixHostCompute
 A default host-compute compressed-row sparse matrix. More...
class  CrsMatrixDeviceCompute
 A default device-compute compressed-row sparse matrix.This is externally identical to the host-based matrix; in fact, it derives from CrsMatrixHostCompute. The difference is that that it contains additional storage and logic for device-bound compute buffers. More...
class  FirstTouchHostCrsMatrix
 A host-compute compressed-row sparse matrix with first-touch allocation. More...
class  CrsMatrix
 Kokkos compressed-row sparse matrix class.Default specialization is a host-bound CrsMatrixHostCompute object. More...
class  CUSPSparseOps
 Access to sparse matrix multiply and solve using the CUSP project. 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  DefaultHostSparseOps
 Default implementation of sparse matrix-vector multiplication and solve routines, for host-based nodes. More...
class  DefaultDeviceSparseOps
 Default implementation of sparse matrix-vector multiplication and solve routines, for device-based nodes. More...
class  MultiVector
 Data structure for vector and multivector data. More...
class  PackedSparseMultiply
 PackedSparseMultiply: A reference class for computing sparse matrix multiplication operations. 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  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::readyBuffer() method. 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