Skip to content
KErnel OPerationS, on CPUs and GPUs, with autodiff and without memory overflows
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Merge branch 'master' of Apr 24, 2019
keopslab allow SoftMax tag for backward compatibility Mar 30, 2019
pykeops N.B.: Kriging = GP regression = generalized spline interpolation Apr 25, 2019
.gitignore Refactor tutorials Mar 12, 2019
.gitmodules Fix benchmark_convolution example. Add gbench to git submodule. Aug 1, 2018 release 1.0.2 Apr 21, 2019
licence.txt Licence is MIT May 29, 2018 Add CI badge status to readme file Apr 18, 2019 Simplify api documention Apr 24, 2019


Build Status

What is KeOps?

KeOps is a library that computes on a GPU generic reductions of 2d arrays whose entries may be computed through a mathematical formula. We provide an autodiff engine to generate effortlessly the formula of the derivative. For instance, KeOps can compute Kernel dot products and their derivatives.

A typical sample of (pseudo) code looks like

from keops import Genred

# create the function computing the derivative of a Gaussian convolution
my_conv = Genred(reduction='Sum',
                 formula  ='Grad(Exp(-SqNorm2(x-y) / IntCst(2)), x, b)',
                 alias    =['x=Vi(3)', 'y=Vj(3)', 'b=Vi(3)'])

# ... apply it to the 2d array x, y, b with 3 columns and a (huge) number of lines
result = my_conv(x,y,b)

KeOps provides good performances and linear (instead of quadratic) memory footprint. It handles multi GPU. More details are provided here:


You can’t perform that action at this time.