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

Wrappers for the BLAS library's implementation of _GEMM; implementation detail of Tpetra::MultiVector. More...

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

Go to the source code of this file.

Classes

struct  Tpetra::Details::Blas::Lib::GemmCanUseLib< ViewType1, ViewType2, ViewType3, CoefficientType, IndexType >
 For this set of template parameters, can we implement Gemm (see below) using any compliant BLAS library, not counting the memory spaces of the given Kokkos::View specializations? More...
 
struct  Tpetra::Details::Blas::Lib::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::Lib::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 the BLAS library's cgemm. More...
 
void Tpetra::Details::Blas::Lib::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 the BLAS library's dgemm. More...
 
void Tpetra::Details::Blas::Lib::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 the BLAS library's sgemm. More...
 
void Tpetra::Details::Blas::Lib::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 the BLAS library's zgemm. More...
 

Detailed Description

Wrappers for the BLAS library's implementation of _GEMM; 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 the BLAS library's _GEMM calls, so that application code is not exposed to BLAS-related extern declarations.

Definition in file Tpetra_Details_libGemm.hpp.

Function Documentation

◆ cgemm()

void Tpetra::Details::Blas::Lib::Impl::cgemm ( const char  transA,
const 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 the BLAS library's cgemm.

Wrapped version of cublasCgemm (v1 API).

Definition at line 111 of file Tpetra_Details_libGemm.cpp.

◆ dgemm()

void Tpetra::Details::Blas::Lib::Impl::dgemm ( const char  transA,
const 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 the BLAS library's dgemm.

Definition at line 134 of file Tpetra_Details_libGemm.cpp.

◆ sgemm()

void Tpetra::Details::Blas::Lib::Impl::sgemm ( const char  transA,
const 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 the BLAS library's sgemm.

Definition at line 152 of file Tpetra_Details_libGemm.cpp.

◆ zgemm()

void Tpetra::Details::Blas::Lib::Impl::zgemm ( const char  transA,
const 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 the BLAS library's zgemm.

Wrapped version of cublasZgemm (v1 API).

Definition at line 170 of file Tpetra_Details_libGemm.cpp.