Skip to content

Releases: ecrc/hcorepp

v3.0.0

09 Nov 21:40
Compare
Choose a tag to compare

v2.0.0

09 Nov 20:17
Compare
Choose a tag to compare

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++

11 May 12:09
Compare
Choose a tag to compare
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
  • 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
  • Provide a complete build script generator based on CMake
  • Provide a comprehensive testing suite based on TestSweeper framework