https://github.com/braintwister/blasbooster
BLAS library combining dense and sparse algorithms
https://github.com/braintwister/blasbooster
blas matrix sparse-algorithms
Last synced: 4 months ago
JSON representation
BLAS library combining dense and sparse algorithms
- Host: GitHub
- URL: https://github.com/braintwister/blasbooster
- Owner: BrainTwister
- License: gpl-3.0
- Created: 2019-09-25T20:50:01.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-13T15:37:40.000Z (almost 4 years ago)
- Last Synced: 2025-01-19T21:39:04.963Z (5 months ago)
- Topics: blas, matrix, sparse-algorithms
- Language: C++
- Size: 884 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
BlasBooster
===========BLAS library combining dense and sparse algorithms
Copyright (C) 2013-2019 Bernd Doser
All rights reserved.
BlasBooster is free software made available under the [GPL-3.0 License](https://opensource.org/licenses/GPL-3.0).
For details see [LICENSE.md](LICENSE.md) file.Algorithms in the field of linear algebra are strictly separated into a dense
and a sparse world. BlasBooster provides an opportunity to combine these two
worlds in a dynamic way by dividing matrices and vectors with respect to their
type, occupation and accuracy, so that in each case the most appropriate
algorithm can by applied.
Let's consider, for instance, a matrix-matrix multiplication. First, the
matrices A and B will be divided into sub-matrices. Then, each sub-matrix will
be converted into their ideal representation with respect to their occupation
and significance. Typical matrix types are:- `Matrix`
- `Matrix`
- `Matrix`
- `Matrix`
- `MultipleMatrix, Matrix>`
- `MultipleMatrix, Matrix>`Here, the `MultipleMatrix` is a special, composed matrix type which is
comparable to an expression template of a matrix sum. The type
`MultipleMatrix, Matrix>`, for instance,
is useful if a matrix have many small entries which can be stored in single
precision and only some entries which must be stored in double precision.For the actual multiplication `A x B`, several multiplications of sub-matrices
of different types will be performed and summed up to the the resulting matrix
`C`.
In addition to the direct usage of the BlasBooster interface, the conventional BLAS
standard is also supported. Therefore, it is possible to use BlasBooster
without any changes within your application by only linking the BlasBooster
library instead of the conventional BLAS library like OpenBLAS, IntelMKL, or
NVIDIA cuBLAS. Moreover, the special module BlasAnalyzer assess your
application with respect to the BLAS usage and reports a summary of all
relevant values and timings.