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

Make KroneckerProductLazyTensor call each component's root decomposition #1394

Merged
merged 3 commits into from
Dec 17, 2020

Conversation

wjmaddox
Copy link
Collaborator

For PSD tensors, we can write the root decomposition of a Kronecker product,
M = A \otimes B = LL' \otimes NN' = (L \otimes N)(L' \otimes N')
for general root decompositions rather than just the symeig case which is implemented currently.

This allows for faster and less memory intensive factorizations of very large Kronecker products as it gives the components the ability to use Lanczos.

Note: I also had to slightly modify the batched KP lazy tensor test case to get lanczos to converge here due to the repeated eigenvalue.

@gpleiss gpleiss merged commit 46fedcd into cornellius-gp:master Dec 17, 2020
@wjmaddox wjmaddox deleted the kplt_general_roots branch December 17, 2020 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants