Bandicoot: C++ Library for GPU Linear Algebra and Scientific Computing
Ryan R. Curtin, Marcus Edel, Conrad Sanderson

TL;DR
Bandicoot is a C++ library that extends Armadillo to GPU-accelerated linear algebra, enabling seamless, high-performance scientific computing on GPUs with minimal code changes.
Contribution
It introduces a GPU-enabled linear algebra library compatible with Armadillo, using template meta-programming for compile-time optimization, ready for production use.
Findings
Provides efficient GPU-accelerated linear algebra operations.
Maintains compatibility with existing Armadillo codebases.
Achieves compile-time optimization of mathematical expressions.
Abstract
This report provides an introduction to the Bandicoot C++ library for linear algebra and scientific computing on GPUs, overviewing its user interface and performance characteristics, as well as the technical details of its internal design. Bandicoot is the GPU-enabled counterpart to the well-known Armadillo C++ linear algebra library, aiming to allow users to take advantage of GPU-accelerated computation for their existing codebases without significant changes. Adapting the same internal template meta-programming techniques that Armadillo uses, Bandicoot is able to provide compile-time optimisation of mathematical expressions within user code. The library is ready for production use and is available at https://coot.sourceforge.io. Bandicoot is distributed under the Apache 2.0 License.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
