monolish  0.17.3-dev.16
MONOlithic LInear equation Solvers for Highly-parallel architecture
Implementation of matrix/vector operations

monolish switches between MKL, NVIDIA and OSS at build time (see here).

This chapter explains what libraries are called by matrix and vector operations.

BLAS

BLAS Lv1

func MKL NVIDIA OSS
copy MKL cuBLAS CBLAS
sum monolish monolish monolish
asum MKL cuBLAS CBLAS
axpy MKL cuBLAS CBLAS
axpyz monolish monolish monolish
xpay monolish monolish monolish
dot MKL cuBLAS CBLAS
nrm1 monolish monolish monolish
nrm2 MKL cuBLAS CBLAS
scal MKL cuBLAS CBLAS

Extended BLAS Lv1

func MKL NVIDIA OSS
matrix scale(Dense) monolish monolish monolish
matrix scale(CRS) monolish monolish monolish
vecadd monolish monolish monolish
vecsub monolish monolish monolish

BLAS Lv2 (matvec)

func MKL NVIDIA OSS
Dense MKL cuBLAS CBLAS
CRS MKL cuSPARSE monolish

BLAS Lv3 (matmul)

func MKL NVIDIA OSS
Dense-Dense MKL cuBLAS CBLAS
CRS-Dense MKL cuSPARSE/monolish* monolish(AVX)
  • *) cuSPARSE single precision SpMM of CUDA 11.4 did not work.

Extended BLAS Lv3: Matrix add/sub (C=A+B)

func MKL NVIDIA OSS
Dense MKL monolish monolish
CRS MKL monolish monolish

Vector (and view1D) Operations

scalar-vector VML

func MKL NVIDIA OSS
add monolish monolish monolish
sub monolish monolish monolish
mul monolish monolish monolish
div monolish monolish monolish

vector-vector VML

func MKL NVIDIA OSS
add MKL monolish monolish
sub MKL monolish monolish
mul MKL monolish monolish
div MKL monolish monolish
equal monolish monolish monolish
copy MKL cuBLAS CBLAS

vector helper functions of VML

func MKL NVIDIA OSS
equal monolish monolish monolish
not equal monolish monolish monolish
copy MKL cuBLAS CBLAS

vector Mathematical functions of VML

func MKL NVIDIA OSS
sin MKL monolish monolish
sinh MKL monolish monolish
arcsin MKL monolish monolish
arcsinh MKL monolish monolish
tan MKL monolish monolish
tanh MKL monolish monolish
arctan MKL monolish monolish
arctanh MKL monolish monolish
power(v,v) MKL monolish monolish
power(v,s) monolish monolish monolish
sqrt MKL monolish monolish
ceil MKL monolish monolish
floor MKL monolish monolish
sign monolish monolish monolish
reciprocal monolish monolish monolish
max(v) MKL monolish monolish
max(v,v) MKL monolish monolish
min(v) MKL monolish monolish
min(v,v) MKL monolish monolish

Dense Matrix Operations

scalar-Dense operations of VML

func MKL NVIDIA OSS
add MKL monolish monolish
sub MKL monolish monolish
mul MKL monolish monolish
div MKL monolish monolish

Dense-Dense operations of VML

func MKL NVIDIA OSS
add MKL monolish monolish
sub MKL monolish monolish
mul MKL monolish monolish
div MKL monolish monolish

Dense helper functions of VML

func MKL NVIDIA OSS
equal monolish monolish monolish
not equal monolish monolish monolish
copy MKL cuBLAS CBLAS
transpose monolish monolish monolish

Dense mathematical functions of VML

func MKL NVIDIA OSS
sin MKL monolish monolish
sinh MKL monolish monolish
arcsin MKL monolish monolish
arcsinh MKL monolish monolish
tan MKL monolish monolish
tanh MKL monolish monolish
arctan MKL monolish monolish
arctanh MKL monolish monolish
power(v,v) MKL monolish monolish
power(v,s) monolish monolish monolish
sqrt MKL monolish monolish
ceil MKL monolish monolish
floor MKL monolish monolish
sign monolish monolish monolish
reciprocal monolish monolish monolish
max(v) MKL monolish monolish
max(v,v) MKL monolish monolish
min(v) MKL monolish monolish
min(v,v) MKL monolish monolish

CRS Matrix Operations

scalar-CRS operations of VML

func MKL NVIDIA OSS
add MKL monolish monolish
sub MKL monolish monolish
mul MKL monolish monolish
div MKL monolish monolish

CRS-Dense operations of VML

func MKL NVIDIA OSS
add MKL monolish monolish
sub MKL monolish monolish
mul MKL monolish monolish
div MKL monolish monolish

CRS helper functions of VML

func MKL NVIDIA OSS
equal monolish monolish monolish
not equal monolish monolish monolish
copy MKL cuBLAS CBLAS

CRS mathematical functions of VML

func MKL NVIDIA OSS
sin MKL monolish monolish
sinh MKL monolish monolish
arcsin MKL monolish monolish
arcsinh MKL monolish monolish
tan MKL monolish monolish
tanh MKL monolish monolish
arctan MKL monolish monolish
arctanh MKL monolish monolish
power(v,v) MKL monolish monolish
power(v,s) monolish monolish monolish
sqrt MKL monolish monolish
ceil MKL monolish monolish
floor MKL monolish monolish
sign monolish monolish monolish
reciprocal monolish monolish monolish
max(v) MKL monolish monolish
max(v,v) MKL monolish monolish
min(v) MKL monolish monolish
min(v,v) MKL monolish monolish