Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restructure kernels to allow vectorization of kernel functions #228

Open
costashatz opened this issue Jun 1, 2017 · 0 comments
Open

Restructure kernels to allow vectorization of kernel functions #228

costashatz opened this issue Jun 1, 2017 · 0 comments

Comments

@costashatz
Copy link
Member

We should at some point change the API to allow vectorization of kernel functions. For example, we would like to do: _kernel = K(X,X) where X is a vector of samples and K is the kernel function. Similarly, _dK_dθ = dK(X,X). That way we will be avoiding the for loops and use Eigen's vectorized functions. In some simple benchmarking that I did, this is the main factor of slowing down our code (especially when optimizing the hyper-parameters of the kernel). The reason we cannot do it in limbo right now is that the kernels provide the following functionality: kernel(x1,x2) and gradient(x1,x2) whereas they should provide kernel(X1,X2) and gradient(X1,X2). We could also provide both functionalities; it is certainly doable with Eigen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant