Report a bug

If you spot a problem with this page, click here to create a GitHub issue.

Improve this page

Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.

# mir.glas

# GLAS (Generic Linear Algebra Subprograms)

The GLAS are generic routines that provide standard building blocks for performing vector and matrix operations.
The Level 1 GLAS perform scalar, vector and vector-vector operations,
the Level 2 GLAS perform matrix-vector operations, and the Level 3 GLAS perform matrix-matrix operations.

GLAS is generalization of BLAS (Basic Linear Algebra Subprograms)
Because the BLAS are efficient, portable, and widely available, they are commonly used in the development of
high quality linear algebra or related software, such as
LAPACK,
NumPy, or The Julia language.
Efficient Level 3 BLAS implementation requires
cache-friendly matrix blocking.
In additional, SIMD instructions should be used for all levels on modern architectures.

## Implemented Routines

The list of already implemented features.Modules | Description |
---|---|

l1 | vector operations 100% done, partially optimized for now |

l2 | matrix-vector operations %3 done, partially optimized for now |

l3 was moved to mir-glas | matrix-matrix operations 50% done |

## Why GLAS

GLAS is ...- fast to execute.
- fast to compile.
- fast to extend using ndslices.
- fast to add new instruction set targets.

## Optimization notes

GLAS requires recent LDC >= 1.1.0-beta2.License:

Authors:

Ilya Yaroshenko

Copyright © 2016-2020 by Ilya Yaroshenko | Page generated by
Ddoc on Sun Nov 15 09:37:38 2020