BoBa Tensor Network Library
BoBa is available for U.S. government and authorized U.S. government contractors
Technology No. CP02585
Description
Huge datasets and tables, as well as high-dimensional partial differential equations, are challenging to work with due to their large memory requirements, even by today's standards. This motivates the development of data compression techniques that allow us to work directly with data in its compressed format. The BoBa library aims to provide performance-portable abstractions that enable tensor methods that are low-memory, controllably accurate, and efficient across heterogeneous hardware.
Core Features
At its core, BoBa offers a variety of features for matrices and tensors:
- Performance portability across CPUs and GPUs for dense matrix and tensor algebra, including support for CUDA, HIP, and Eigen.
- Dense, memory-owning object abstractions for arrays, vectors, matrices, and tensors that follow the "resource allocation is initialization" philosophy.
- Capabilities to create views of such objects, including 'atomic' and 'const' views.
- Routines for calling open-source and vendor linear algebra operations, including LU, QR, SVD, and more.
- Routines for calling open-source and vendor tensor algebra operations, including permutations, contractions, reductions, and more.
- Portable multi-dimensional loops and reductions enabled by RAJA.
- Dense object memory pooling enabled by Umpire.
- Static (compile-time sized) versions of matrices and tensors, with relevant algorithms.
- A C++17 feature set, with back-portability to C++14.
Tensor Network Library
Built atop this core functionality is a performance-portable tensor network library that includes:
- Implementations for arbitrary-dimensional tensor trains, tensor train matrices, and related algorithms.
- Implementations for arbitrary-dimensional Tucker decompositions, Tucker matrices, and related algorithms.
- Implementations for arbitrary-dimensional multilinear and nonlinear solvers.
- Tutorials, informative unit tests, and mini-applications related to all of the above.
Applications
The BoBa library has been used in several applications, including:
- Compressing huge multi-dimensional data tables found in chemistry and high-energy density physics, and efficiently reading these tables on GPUs.
- Accelerating high-dimensional Vlasov solvers.
- Creating tensorized finite element solvers using mfem.
Licensing Information
The BoBa code is Official Use Only, Export-Controlled, and cannot be shared or redistributed.
For further information, please contact:
- Pierson Guthrey: guthrey1@llnl.gov
- Software Licensing: softwarelicensing@llnl.gov
-
swap_vertical_circlecloud_downloadSupporting documents (1)Product brochureBoBa Tensor Network Library.pdfAdditional files may be available once you've completed the transaction for this product. If you've already done so, please log into your account and visit My account / Downloads section to view them.