Benjamin Charlier (IMAG, Université de Montpellier)
In this talk I will present the KeOps library, which allows to compute arbitrary operations implying M*N pairwise interactions between M ‘source’ and N ’target’ data points or features in a very efficient way, benefitting from Cpu or Gpu parallelization and automatic differentiation. KeOps avoids creating unnecessary temporary quadratic matrices (M \times N) for very common operations such as kernel convolutions or nearest neighbour search and can be used almost seamlessly, through NumPy, PyTorch or R bindings. The end-user interface of KeOps is centered around the concept of symbolic matrices or tensors, i.e. tensors that are defined as mathematical expressions from actual tensors, are not computed nor materialized in memory, and can be further manipulated in expressions until the actual final computation is performed. KeOps allows to alleviate the user from the burden of creating custom routines for such operations, easing the development of algorithms for a broad range of applications in imaging science, such as inverse problems, computational optimal transport, shape analysis or geometric deep learning. I will present both the end-user interface of KeOps, briefly explain its internal engine, and then show how many standard or specific algorithms can benefit from KeOps.