HCore++
BLAS for Tile Low-rank Matrix Algebra
|
HCore++ is convenient, performance-oriented C++ software API for tile low-rank matrix algebra. HCore++ implements BLAS functionality in the form of tile routines; update one or a small number of individual tiles, generally sequentially on a single compute unit. Notably, an m-by-n matrix is a collection of individual mb-by-nb tiles. HCore++ tiles are first C++ class objects, which are entities that can be individually allocated, destroyed, and passed to low-level tile routines, e.g., GEMM. HCore++ tile routines rely on the tile low-rank compression, which replaces the dense operations with the equivalent low rank operations, to reduce the memory footprint and/or the time-to-solution.
Installation requires CMake
of version 3.21.2 at least. To build HCore++, follow these instructions:
Now you can use pkg-config
executable to collect compiler and linker flags for Hcore++.
You can find it under examples/matrix_multiplication showcasing how to do matrix multiplication for matrices in a tile format, using HCore GEMM API.