docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::math::blas Namespace Reference

Classes

class  BatchedGEMMNode
class  BatchedGEMMNodeSerializer
class  BLASNode
 Base class for BLAS operation nodes. More...
class  BLASLibDependency
class  DotNode
class  DotNodeSerializer
class  DotNodeDispatcher_BLAS
class  GEMMNode
class  GEMMNodeSerializer
class  GEMMNodeDispatcher_BLAS

Enumerations

enum  BLAS_Precision {
  invalid = 0 , h = 'h' , s = 's' , d = 'd' ,
  c = 'c' , z = 'z'
}
 Precision/data type for BLAS operations. More...
enum  BLAS_Transpose { No = 111 , Trans = 112 , ConjTrans = 113 }
 Transpose operation for BLAS matrices. More...
enum  BLAS_Layout { RowMajor = 101 , ColMajor = 102 }
 Memory layout for BLAS matrices. More...

Functions

data_flow::LibraryNodeCode LibraryNodeType_BatchedGEMM ("BatchedGEMM")
constexpr std::string_view BLAS_Precision_to_string (BLAS_Precision precision)
constexpr std::string_view BLAS_Transpose_to_string (BLAS_Transpose transpose)
constexpr char BLAS_Transpose_to_char (BLAS_Transpose transpose)
constexpr std::string_view BLAS_Layout_to_string (BLAS_Layout layout)
constexpr std::string_view BLAS_Layout_to_short_string (BLAS_Layout layout)
data_flow::LibraryNodeCode LibraryNodeType_DOT ("DOT")
data_flow::LibraryNodeCode LibraryNodeType_GEMM ("GEMM")
GEMMNode & add_gemm_node (builder::StructuredSDFGBuilder &builder, Block &block, const std::string &ptr_a, const std::string &ptr_b, const std::string &ptr_c, data_flow::AccessNode &alpha_node, data_flow::AccessNode &beta_node, const BLAS_Precision &precision, const BLAS_Layout &layout, const BLAS_Transpose &trans_a, const BLAS_Transpose &trans_b, symbolic::Expression &m, symbolic::Expression &n, symbolic::Expression &k, symbolic::Expression &lda, symbolic::Expression &ldb, symbolic::Expression &ldc, const types::IType &a_type, const types::IType &b_type, const types::IType &c_type, const types::IType &factor_type, DebugInfo debug_info, DebugInfo a_access_deb_info, DebugInfo b_access_deb_info, DebugInfo c_access_deb_info, DebugInfo a_edge_deb_info, DebugInfo b_edge_deb_info, DebugInfo c_edge_deb_info, data_flow::ImplementationType impl_type)
GEMMNode & add_gemm_node (builder::StructuredSDFGBuilder &builder, Block &block, const std::string &ptr_a, const std::string &ptr_b, const std::string &ptr_c, data_flow::AccessNode &alpha_node, data_flow::AccessNode &beta_node, const BLAS_Precision &precision, const BLAS_Layout &layout, const BLAS_Transpose &trans_a, const BLAS_Transpose &trans_b, symbolic::Expression &m, symbolic::Expression &n, symbolic::Expression &k, symbolic::Expression &lda, symbolic::Expression &ldb, symbolic::Expression &ldc, const types::IType &ptr_type, const types::IType &factor_type, DebugInfo debug_info=DebugInfo(), data_flow::ImplementationType impl_type=ImplementationType_BLAS)

Variables

data_flow::ImplementationType ImplementationType_BLAS {"BLAS"}
 BLAS implementation type Uses standard CPU BLAS libraries (OpenBLAS, Intel MKL, etc.).

Enumeration Type Documentation

◆ BLAS_Layout

Memory layout for BLAS matrices.

Specifies how matrix elements are stored in memory:

  • RowMajor: Rows are contiguous (C-style, 101)
  • ColMajor: Columns are contiguous (Fortran-style, 102)
Enumerator
RowMajor 
ColMajor 

◆ BLAS_Precision

Precision/data type for BLAS operations.

Indicates the floating-point precision of the operation:

  • h: Half precision (16-bit)
  • s: Single precision (32-bit float)
  • d: Double precision (64-bit double)
  • c: Complex single precision
  • z: Complex double precision
Enumerator
invalid 
h 
s 
d 
c 
z 

◆ BLAS_Transpose

Transpose operation for BLAS matrices.

Specifies whether to use a matrix as-is or transposed:

  • No: No transpose (111)
  • Trans: Transpose (112)
  • ConjTrans: Conjugate transpose (113)
Enumerator
No 
Trans 
ConjTrans 

Function Documentation

◆ add_gemm_node() [1/2]

GEMMNode & sdfg::math::blas::add_gemm_node ( builder::StructuredSDFGBuilder & builder,
Block & block,
const std::string & ptr_a,
const std::string & ptr_b,
const std::string & ptr_c,
data_flow::AccessNode & alpha_node,
data_flow::AccessNode & beta_node,
const BLAS_Precision & precision,
const BLAS_Layout & layout,
const BLAS_Transpose & trans_a,
const BLAS_Transpose & trans_b,
symbolic::Expression & m,
symbolic::Expression & n,
symbolic::Expression & k,
symbolic::Expression & lda,
symbolic::Expression & ldb,
symbolic::Expression & ldc,
const types::IType & a_type,
const types::IType & b_type,
const types::IType & c_type,
const types::IType & factor_type,
DebugInfo debug_info,
DebugInfo a_access_deb_info,
DebugInfo b_access_deb_info,
DebugInfo c_access_deb_info,
DebugInfo a_edge_deb_info,
DebugInfo b_edge_deb_info,
DebugInfo c_edge_deb_info,
data_flow::ImplementationType impl_type )

◆ add_gemm_node() [2/2]

GEMMNode & sdfg::math::blas::add_gemm_node ( builder::StructuredSDFGBuilder & builder,
Block & block,
const std::string & ptr_a,
const std::string & ptr_b,
const std::string & ptr_c,
data_flow::AccessNode & alpha_node,
data_flow::AccessNode & beta_node,
const BLAS_Precision & precision,
const BLAS_Layout & layout,
const BLAS_Transpose & trans_a,
const BLAS_Transpose & trans_b,
symbolic::Expression & m,
symbolic::Expression & n,
symbolic::Expression & k,
symbolic::Expression & lda,
symbolic::Expression & ldb,
symbolic::Expression & ldc,
const types::IType & ptr_type,
const types::IType & factor_type,
DebugInfo debug_info = DebugInfo(),
data_flow::ImplementationType impl_type = ImplementationType_BLAS )

◆ BLAS_Layout_to_short_string()

std::string_view sdfg::math::blas::BLAS_Layout_to_short_string ( BLAS_Layout layout)
inlineconstexpr

◆ BLAS_Layout_to_string()

std::string_view sdfg::math::blas::BLAS_Layout_to_string ( BLAS_Layout layout)
constexpr

◆ BLAS_Precision_to_string()

std::string_view sdfg::math::blas::BLAS_Precision_to_string ( BLAS_Precision precision)
constexpr

◆ BLAS_Transpose_to_char()

char sdfg::math::blas::BLAS_Transpose_to_char ( BLAS_Transpose transpose)
inlineconstexpr

◆ BLAS_Transpose_to_string()

std::string_view sdfg::math::blas::BLAS_Transpose_to_string ( BLAS_Transpose transpose)
constexpr

◆ LibraryNodeType_BatchedGEMM()

data_flow::LibraryNodeCode sdfg::math::blas::LibraryNodeType_BatchedGEMM ( "BatchedGEMM" )
inline

◆ LibraryNodeType_DOT()

data_flow::LibraryNodeCode sdfg::math::blas::LibraryNodeType_DOT ( "DOT" )
inline

◆ LibraryNodeType_GEMM()

data_flow::LibraryNodeCode sdfg::math::blas::LibraryNodeType_GEMM ( "GEMM" )
inline

Variable Documentation

◆ ImplementationType_BLAS

data_flow::ImplementationType sdfg::math::blas::ImplementationType_BLAS {"BLAS"}
inline

BLAS implementation type Uses standard CPU BLAS libraries (OpenBLAS, Intel MKL, etc.).