Tpetra parallel linear algebra  Version of the Day
Classes | Namespaces | Functions
Tpetra_Details_mklGemm.hpp File Reference

Implementation detail of Tpetra::MultiVector. More...

#include "TpetraCore_config.h"
#include "Tpetra_Details_Blas.hpp"
#include "Tpetra_Details_libGemm.hpp"

Go to the source code of this file.

Classes

struct  Tpetra::Details::Blas::Mkl::GemmCanUseMkl< ViewType1, ViewType2, ViewType3, CoefficientType, IndexType >
 For this set of template parameters, can and should we implement Gemm (see below) using the MKL? More...
 
struct  Tpetra::Details::Blas::Mkl::Impl::Gemm< ScalarType >
 Wrapper for the above wrappers, templated on scalar type (the type of each entry in the matrices). More...
 

Namespaces

 Tpetra
 Namespace Tpetra contains the class and methods constituting the Tpetra library.
 
 Tpetra::Details
 Namespace for Tpetra implementation details.
 

Functions

void Tpetra::Details::Blas::Mkl::Impl::cgemm (const char char_transA, const char char_transB, const int m, const int n, const int k, const ::Kokkos::complex< float > &alpha, const ::Kokkos::complex< float > A[], const int lda, const ::Kokkos::complex< float > B[], const int ldb, const ::Kokkos::complex< float > &beta, ::Kokkos::complex< float > C[], const int ldc)
 Wrapped version of MKL's cblas_cgemm. More...
 
void Tpetra::Details::Blas::Mkl::Impl::dgemm (const char char_transA, const char char_transB, const int m, const int n, const int k, const double alpha, const double A[], const int lda, const double B[], const int ldb, const double beta, double C[], const int ldc)
 Wrapped version of MKL's cblas_dgemm. More...
 
void Tpetra::Details::Blas::Mkl::Impl::sgemm (const char char_transA, const char char_transB, const int m, const int n, const int k, const float alpha, const float A[], const int lda, const float B[], const int ldb, const float beta, float C[], const int ldc)
 Wrapped version of MKL's cblas_sgemm. More...
 
void Tpetra::Details::Blas::Mkl::Impl::zgemm (const char char_transA, const char char_transB, const int m, const int n, const int k, const ::Kokkos::complex< double > &alpha, const ::Kokkos::complex< double > A[], const int lda, const ::Kokkos::complex< double > B[], const int ldb, const ::Kokkos::complex< double > &beta, ::Kokkos::complex< double > C[], const int ldc)
 Wrapped version of MKL's cblas_zgemm. More...
 

Detailed Description

Implementation detail of Tpetra::MultiVector.

Warning
This file, and its contents, are an implementation detail of Tpetra::MultiVector. Either may disappear or change at any time.

The point of this file is to wrap MKL _GEMM calls, so that application code is not exposed to MKL include files.

Definition in file Tpetra_Details_mklGemm.hpp.

Function Documentation

◆ cgemm()

void Tpetra::Details::Blas::Mkl::Impl::cgemm ( const char  char_transA,
const char  char_transB,
const int  m,
const int  n,
const int  k,
const ::Kokkos::complex< float > &  alpha,
const ::Kokkos::complex< float >  A[],
const int  lda,
const ::Kokkos::complex< float >  B[],
const int  ldb,
const ::Kokkos::complex< float > &  beta,
::Kokkos::complex< float >  C[],
const int  ldc 
)

Wrapped version of MKL's cblas_cgemm.

Wrapped version of cublasCgemm (v1 API).

See the MKL documentation for details.

Definition at line 80 of file Tpetra_Details_mklGemm.cpp.

◆ dgemm()

void Tpetra::Details::Blas::Mkl::Impl::dgemm ( const char  char_transA,
const char  char_transB,
const int  m,
const int  n,
const int  k,
const double  alpha,
const double  A[],
const int  lda,
const double  B[],
const int  ldb,
const double  beta,
double  C[],
const int  ldc 
)

Wrapped version of MKL's cblas_dgemm.

See the MKL documentation for details.

Definition at line 111 of file Tpetra_Details_mklGemm.cpp.

◆ sgemm()

void Tpetra::Details::Blas::Mkl::Impl::sgemm ( const char  char_transA,
const char  char_transB,
const int  m,
const int  n,
const int  k,
const float  alpha,
const float  A[],
const int  lda,
const float  B[],
const int  ldb,
const float  beta,
float  C[],
const int  ldc 
)

Wrapped version of MKL's cblas_sgemm.

See the MKL documentation for details.

Definition at line 140 of file Tpetra_Details_mklGemm.cpp.

◆ zgemm()

void Tpetra::Details::Blas::Mkl::Impl::zgemm ( const char  char_transA,
const char  char_transB,
const int  m,
const int  n,
const int  k,
const ::Kokkos::complex< double > &  alpha,
const ::Kokkos::complex< double >  A[],
const int  lda,
const ::Kokkos::complex< double >  B[],
const int  ldb,
const ::Kokkos::complex< double > &  beta,
::Kokkos::complex< double >  C[],
const int  ldc 
)

Wrapped version of MKL's cblas_zgemm.

Wrapped version of cublasZgemm (v1 API).

See the MKL documentation for details.

Definition at line 169 of file Tpetra_Details_mklGemm.cpp.