GPyTorch is a Gaussian process library implemented in PyTorch that enables scalable, flexible, and modular GP models with GPU acceleration.
The library addresses the computational challenges of Gaussian process inference by using numerical linear algebra techniques like preconditioned conjugate gradients rather than traditional Cholesky decomposition approaches. This design choice yields significantly better GPU utilization. The core abstraction is the LinearOperator interface, which allows users to implement scalable GP methods by providing a matrix multiplication routine with the kernel matrix and its derivative, or by composing existing LinearOperators. This modular approach makes it straightforward to implement both established scalable techniques and recent algorithmic advances.
GPyTorch suits researchers and practitioners building GP models who need GPU acceleration and want to leverage modern deep learning frameworks. The library is particularly valuable for those working with large datasets or requiring state-of-the-art scalability methods, as it provides implementations of techniques like SKI/KISS-GP, stochastic Lanczos expansions, LOVE, SKIP, stochastic variational inference, and deep kernel learning. Its tight integration with PyTorch makes it a natural choice for projects combining Gaussian processes with neural networks or other deep learning components.
The project maintains an active test suite and comprehensive documentation with tutorials and examples. Development follows a structured contribution process with guidance for those submitting pull requests, including instructions for manual installation of development versions.