Bandicoot: A Templated C++ Library for GPU Linear Algebra
Ryan R. Curtin, Marcus Edel, Conrad Sanderson

TL;DR
Bandicoot is a C++ library that enables GPU-accelerated linear algebra computations, offering significant speedups over CPU-based Armadillo, with a focus on ease of integration and compile-time optimization.
Contribution
It introduces a GPU-enabled linear algebra library that closely integrates with existing Armadillo codebases, utilizing template meta-programming for optimized performance.
Findings
Bandicoot achieves substantial speedups over Armadillo CPU computations.
The library maintains user-friendly interface similar to Armadillo.
Empirical results demonstrate effective GPU acceleration.
Abstract
We introduce 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. Exploiting similar internal template meta-programming techniques that Armadillo uses, Bandicoot is able to provide compile-time optimisation of mathematical expressions within user code, leading to more efficient execution. Empirical evaluations show that Bandicoot can provide significant speedups over Armadillo-based CPU-only computation. Bandicoot is available at https://coot.sourceforge.io and is distributed as open-source software under the permissive…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
