Update gpytorch and gpflow benchmark - #19
Conversation
|
Hi @gpleiss |
Sorry - what is the 3x slowdown in comparison to? |
|
I'll give you the whole list of settings I'm trying:
|
|
Which benchmark script are you running to get these results? |
|
|
|
Ah I understand the discrepancy now. In With M=1000 or 2000, usually this extra precision doesn't take much time. At M=4000 you start to see a difference, but the double precision usually is necessary for later epochs to prevent numerical errors. |
Here's a few updates to the GPyTorch and GPFlow benchmark code that I believe will make a better comparison to both packages:
Using whitened variational inference - the whitening operation is known to dramatically accelerate the convergence of variational optimization without any additional computational complexity. (Importantly, the GPyTorch
UnwhitenedVariationalStrategyis very old code that uses out-dated linear algebra. We haven't updated it because we wouldn't normally recommend using it at all.)For the gpytorch data loader - set
num_workers=0. More num_workers is (counterintuitively) slower for non-image datasets, as it requires thread synchronization.You are comparing GPyTorch/GPFlow SVGP models against Falkon's kernel ridge regression - which essentially compares the timing difference of large kernel matrix operations against the convergence rate of SGD. Whitening is a known technique that improves SGD's convergence rate for SVGP (without any additional complexity).
cc/ @jacobrgardner - @jameshensman, @alexggmatthews am I missing anything on the GPFlow end?