HALA: Handy Accelerated Linear Algebra
- Oak Ridge National Lab. (ORNL), Oak Ridge, TN (United States)
Accelerated linear algebra libraries often come with C-style of interfaces or even older Fortran77 standards, which makes it difficult to use within generic template programming environment of modern C++. For example, the BLAS and derived standards such as cuBLAS do not accept overloads and a different functions have to be called for each input type, thus it is very challenging to write a single template that handles multiple precision modes and works well with different C++ containers. HALA offers a series of templates that wrap around the BLAS/cuBLAS and other similar methods, automatically infer the relevant types and call the appropriate back-end. The templates work out-of-the-box with all C++ standard vector-like containers and can be easily extended (with template specializations) to handle user-provided containers. The HALA API is also overloaded to handle both GPU and CPU cases with a single "engine" class, thus a single high-level algorithms can utilize both CPU or GPU backends, i.e., the HALA API is unified and handles the variations between cuBLAS and BLAS. In addition to BLAS and cuBLAS, wrapper templates are provided for subset of LAPACK, cuSparse, and Cholmod methods. Work is in progress to complete as many of these standards as possible. HALA also includes a module for low-level extended register vectorization for complex number arithmetic and several simple solvers that build on the basic linear algebra capabilities. A single unified C++ API will benefit fast prototyping and easily writing code that is portable across GPU/CPU platforms as well as precision types and user containers. Note that HALA does not provide any accelerated algorithms, it simply serves as a "handy" front-end to other standards.
- Short Name / Acronym:
- HALA
- Site Accession Number:
- 8142
- Software Type:
- Scientific
- License(s):
- BSD 3-clause "New" or "Revised" License
- Programming Language(s):
- C++ (gcc6 and 7 or clang 5 and 6)
- Research Organization:
- Oak Ridge National Laboratory (ORNL), Oak Ridge, TN (United States)
- Sponsoring Organization:
- USDOEPrimary Award/Contract Number:AC05-00OR22725
- DOE Contract Number:
- AC05-00OR22725
- Code ID:
- 57394
- OSTI ID:
- code-57394
- Country of Origin:
- United States
Similar Records
PB-BLAS: A set of parallel block basic linear algebra subprograms
Towards Batched Linear Solvers on Accelerated Hardware Platforms