Skip to content
KErnel OPerationS, on CPUs and GPUs, with autodiff and without memory overflows
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Merge branch 'master' of github.com:getkeops/keops Apr 24, 2019
keops
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
CHANGELOG.md release 1.0.2 Apr 21, 2019
Jenkinsfile
licence.txt Licence is MIT May 29, 2018
readme.md Add CI badge status to readme file Apr 18, 2019
setup.py Simplify api documention Apr 24, 2019

readme.md

logo

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:

Authors

You can’t perform that action at this time.