RandBLAS: sketching for randomized numerical linear algebra
RandBLAS is a C++ library for randomized linear dimension reduction — an operation commonly known as sketching. We built RandBLAS to make it easier to write and debug high-performance implementations of sketching-based algorithms.
RandBLAS is efficient, flexible, and reliable. It uses CPU-based OpenMP acceleration to apply its sketching operators to matrices stored in main memory. It includes dense and sparse sketching operators (e.g., Gaussian operators, CountSketch, OSNAPs, etc …), which can be applied to dense or sparse data in any combination that leads to a dense sketch.
With RandBLAS and an LAPACK-like library at your disposal, you can implement a huge range of shared-memory randomized algorithms for matrix computations. RandBLAS can be used in distributed environments through its ability to compute products with submatrices of sketching operators, without ever realizing the entire sketching operator in memory.
Learn more by reading our tutorial or our API reference. If we’ve piqued your interest, try RandBLAS yourself! We’ve got a handy installation guide on this website and examples in our GitHub repository.