Releases: ecrc/hcorepp
Releases · ecrc/hcorepp
v3.0.0
v2.0.0
v2.0.0 | 2022.11.09
- Refactored the full structure to a more object oriented focused design, reducing redundancy and increasing reusability:
- Tile representation abstraction for both dense and compressed tiles
- Templated implementation for different base datatypes
- Revisted high-level API
- Generic resolution for different tile combinations
- Provide scripts for generating and building the library based on CMake
- Provide a test suite based on the Catch2 framework for unit testing
- Provide high-level examples showcasing generic GEMM, and a matrix-matrix multiplication driver based on the tile low-rank GEMM that is useful for benchmarking, along with a benchmarking script
- Support single and double precision arithmetics
- Support the following backends:
- MKL/OpenBlas for x86 CPU platforms
- CUDA for NVIDIA GPUs
C++
v1.0.0 | 2021.05.01
- Modern C++ design
- Templates for precision to minimize codebase
- Instantiation for float, double, complex, and complex-double
- Exceptions to avoid silently ignoring errors
- Use standard containers. e.g., std::vector
- Templates for precision to minimize codebase
- Use BLAS++ and LAPACK++ as abstraction layers to provide C++ APIs for the
Basic Linear Algebra Subroutines (BLAS) and LAPACK (Linear Algebra PACKage). - Support flexible and non-uniform tile sizes
- Support all combinations of GEMM
- ddd, ddc, dcd, dcc, cdd, cdc, ccd, and ccc; where c is compressed tile
and d is dense tile
- ddd, ddc, dcd, dcc, cdd, cdc, ccd, and ccc; where c is compressed tile
- Provide a complete build script generator based on CMake
- Provide a comprehensive testing suite based on TestSweeper framework