Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

HALA: Handy Accelerated Linear Algebra

Software ·
DOI:https://doi.org/10.11578/dc.20210521.117· OSTI ID:code-57394 · Code ID:57394
 [1]
  1. 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:
USDOE

Primary Award/Contract Number:
AC05-00OR22725
DOE Contract Number:
AC05-00OR22725
Code ID:
57394
OSTI ID:
code-57394
Country of Origin:
United States

Similar Records

Parallel Latent Semantic Analysis using a Graphics Processing Unit
Conference · Wed Dec 31 23:00:00 EST 2008 · OSTI ID:962623

PB-BLAS: A set of parallel block basic linear algebra subprograms
Conference · Fri Dec 30 23:00:00 EST 1994 · OSTI ID:78703

Towards Batched Linear Solvers on Accelerated Hardware Platforms
Book · Wed Dec 31 23:00:00 EST 2014 · OSTI ID:1261494

Related Subjects