docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
blas_node.h File Reference

BLAS (Basic Linear Algebra Subprograms) library node definitions. More...

Go to the source code of this file.

Classes

class  sdfg::math::blas::BLASNode
 Base class for BLAS operation nodes. More...
class  sdfg::math::blas::BLASLibDependency

Namespaces

namespace  sdfg
namespace  sdfg::math
namespace  sdfg::math::blas

Enumerations

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

Functions

constexpr std::string_view sdfg::math::blas::BLAS_Precision_to_string (BLAS_Precision precision)
constexpr std::string_view sdfg::math::blas::BLAS_Transpose_to_string (BLAS_Transpose transpose)
constexpr char sdfg::math::blas::BLAS_Transpose_to_char (BLAS_Transpose transpose)
constexpr std::string_view sdfg::math::blas::BLAS_Layout_to_string (BLAS_Layout layout)
constexpr std::string_view sdfg::math::blas::BLAS_Layout_to_short_string (BLAS_Layout layout)

Variables

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

Detailed Description

BLAS (Basic Linear Algebra Subprograms) library node definitions.

This file defines base classes and enumerations for BLAS operations. BLAS nodes are mathematical library nodes that can be dispatched to various BLAS implementations (CPU BLAS, CUBLAS, etc.) based on their implementation type.

BLAS Implementation Types

BLAS nodes support multiple implementation types:

  • ImplementationType_BLAS: Standard CPU BLAS (e.g., OpenBLAS, MKL)
  • ImplementationType_CUDAWithTransfers: CUDA with automatic data transfers
  • ImplementationType_CUDAWithoutTransfers: CUDA assuming data is on GPU

The implementation type is used by dispatchers to generate appropriate library calls.

BLAS Operations

Common BLAS operations include:

  • Level 1: Vector operations (dot product)
  • Level 2: Matrix-vector operations
  • Level 3: Matrix-matrix operations (GEMM)
See also
math::blas::GemmNode for matrix multiplication
math::blas::DotNode for dot product
math::MathNode for expansion interface