GpFlash: Maximizing Speed and Minimizing Memory for Gaussian Process Training and Prediction
Organizations: Applied Scientist at Amazon Prime Air, Seattle, USA
Abstract
This paper presents GpFlash, a Gaussian process library that is focused on fast training and posterior evaluations, minimal memory usage, and scalability to high-dimensional problems. GpFlash was compared to the popular GP libraries scikit-learn, GPy, GPflow, GPyTorch, and SMT on a MacBook Pro and the supercomputer Trillium. GpFlash was found to use less memory and to be faster for training and posterior evaluations relative to the other GP libraries for all cases considered. For example, when using training points in a 10-dimensional space GpFlash required 9.6 to 35 times less memory and was 2.6 to 54 times faster than the other GP libraries for the evaluation of the marginal log likelihood and its gradient. The memory reduction was achieved by only using one matrix of size to store different symmetric matrices in its lower and upper triangular entries. The computational speedup was the result of designing algorithms to access memory efficiently, using BLAS and LAPACK methods extensively, and factoring kernel equations so that expensive exponential calculations could be reused. GpFlash was more than 440 times faster than all of the other GP libraries considered when evaluating the posterior mean together with its gradient for the case with training points and 10 dimensions. GpFlash is available at https://github.com/marchildon/gpflash.
Figures & tables
Gaussian Processes
Gaussian Processes are probabilistic models of functions that use kernels to make predictions with explicit uncertainty.
See all 113 papers