About Contribute Source | |
main/software/ |
(Listed in alphabetical order by project name.)
Cyclops Tensor Framework (C++)
This library provides automatic parallelization of operations on multidimensional
(sparse) arrays. Cyclops supports general tensor sparsity, so it is
possible to define graph algorithms with the use of sparse adjacency matrices
Fastor (C++)
Fastor is a stack-based high performance tensor (multi-dimensional array) library written
in modern C++ [C++11/14/17] with powerful in-built tensor algebraic functionalities
(tensor contraction, permutation, reductions, special tensor groups etc).
ITensor (C++, Julia)
ITensor is a library for tensor networks where tensor indices carry extra information and matching tensor
indices automatically contract. Also features MPS and MPO algorithms, such as DMRG, and quantum number block-sparse tensors.
NCON (MATLAB)
NCON (Network Contractor) is a MATLAB routine which can be used for computing
a broad class of tensor network diagrams in an efficient and convenient way.
QUIMB (Python)
python library for contracting tensors and tensor networks,
with support for matrix product states and algorithms, and advanced
features such as determination of the optimal ordering of tensor contractions.[1]
Scikit-TT (Python)
Scikit-TT is a Python library for applying the tensor-train (TT) format
to various numerical problems in order to reduce the memory consumption and computational
cost compared to classical tensor approaches significantly.
TenPy (Python)
Tensor Network Python (TeNPy) is a Python library for the simulation of
quantum systems with tensor networks. The philosophy of this library is
to get a new balance of a good readability and usability for new-comers,
and at the same time powerful algorithms and fast development of new
algorithms for experts.[2]
TensorLab (MATLAB)
Tensorlab is a MATLAB toolbox for rapid prototyping of tensor
decompositions with structured factors. By mixing different types
of decompositions and factor structures, a vast amount of factorizations
can be computed.
TensorLy (Python)
A python library offering a high-level API for tensor methods and
deep tensorized neural networks. TensorLy’s backend system allows users to
perform computations with NumPy, MXNet, PyTorch, TensorFlow, and CuPy
in order to be scalable on both CPU and GPU.[3]
TensorNetwork (Python)
python library for easy and efficient contraction of tensor
networks, supporting multiple powerful backends
Tensor Toolbox (MATLAB)
The Tensor Toolbox is a MATLAB library supporting multiple tensor types,
including dense, sparse, and symmetric tensors as well as specially
structured tensors, such as Tucker format,
and others. Tensors can be manipulated using MATLAB’s object-oriented features.
TiledArray (C++)
TiledArray is a massively-parallel, block-sparse tensor framework written in C++.
It is a scalable, block-sparse tensor framework for rapid composition of high-performance
tensor arithmetic, appearing for example in many-body quantum mechanics. It allows
users to compose tensor expressions of arbitrary complexity in native C++ code that
closely resembles the standard mathematical notation. The framework is designed to
scale from a single multicore computer to a massive distributed-memory multiprocessor.
TorchMPS (Python)
TorchMPS is a framework for working with matrix product state (also known
as MPS or tensor train) models within Pytorch. Our MPS models are written as
Pytorch Modules, and can simply be viewed as differentiable black boxes
that are interchangeable with standard neural network layers. However,
the rich structure of MPS’s allows for more interesting behavior…
TT-Toolbox (MATLAB)
MATLAB implementation of basic operations with tensors in TT-format,
including TT tensor and TT matrix formats, fast rounding procedures,
methods for solutions of linear systems and eigenvalue problems,
and the TT-cross method.
Uni10 (C++)
Universal Tensor Library, an open-source C++ library designed for
the development of tensor network algorithms. Provides a Network class to process
and store the details of the graphical representations of the networks,
and supports quantum number block-sparse tensors.
Xerus (C++)
The Xerus library is a general purpose library for numerical
calculations with higher order tensors, Tensor-Train
Decompositions / Matrix Product States and general Tensor Networks.
The focus of development was the simple usability and adaptibility to any
setting that requires higher order tensors or decompositions thereof.
CuTensor (C)
CuTensor is a library for high-performance contraction of arbitrary tensors on NVIDIA graphics processing units (GPUs). It is built on top of hardware-optimized, permutation-free contraction algorithms and can achieve very high performance.
Cyclops Tensor Framework (C++)
This library provides automatic parallelization of operations on multidimensional
(sparse) arrays. Cyclops supports general tensor sparsity, so it is
possible to define graph algorithms with the use of sparse adjacency matrices
HPTT (C/C++)
High-performance tensor transpose (HPTT) is a library for permuting (transposing) tensor data including summing two tensors which may have a different ordering of indices. Performance is achieved by hardware and cache-friendly algorithms as well as multi-threading based on OpenMP.
taco (C/C++)
taco is a library for compiling dense and sparse linear and tensor algebra expressions.
The expressions can range from simple kernels like SpMV to more complex kernels
like MTTKRP, where the operands can be dense, sparse, or a mix of dense and sparse.
taco automatically generates efficient compute kernels (loops) to evaluate these expressions.
TBLIS (C/C++)
TBLIS is a contraction library for arbitrary (real-valued) tensors which uses a sophisticated permutation-free algorithm, avoiding the permutation overhead that would be incurred by a more naive permute and matrix-multiply algorithm.