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 |