Contents

class

SushiBLAS::Level3

Records the Level 3 BLAS routines.

Declared in
include/SushiBLAS/engine/blas/level3.hpp

See also

include/SushiBLAS/engine/blas/README.md

Public member functions

TaskHandle gemm(const Tensor &A, const Tensor &B, Tensor &C, bool transA=false, bool transB=false, double alpha=1.0, double beta=0.0)

Computes C = alpha * op(A) * op(B) + beta * C, batched when the operands have rank > 2.

TaskHandle trsm(const Tensor &A, Tensor &B, bool left_side=true, bool upper=false, bool transA=false, bool unit_diag=false, double alpha=1.0)

Solves a triangular system with multiple right-hand sides, overwriting B with X.

Parameters

left_side

Solves op(A) * X = alpha * B when true, X * op(A) = alpha * B when false.

upper

Treats A as upper triangular when true, lower when false.

TaskHandle syrk(const Tensor &A, Tensor &C, bool upper=false, bool transA=false, double alpha=1.0, double beta=0.0)

Computes the symmetric rank-k update of C from A.

Parameters

upper

Stores the result in the upper triangle of C when true, the lower when false.

transA

Computes alpha * A^T * A + beta * C when true, alpha * A * A^T + beta * C when false.

Protected member functions

explicit Level3(TaskRecorder &recorder) noexcept

Binds the level to the recorder its routines record through.

Level3(const Level3 &)=default
Level3 & operator=(const Level3 &)=delete
Level3(Level3 &&)=default
Level3 & operator=(Level3 &&)=delete
~Level3()=default