FAQ
xGPR uses random features. How much does performance fluctuate if I choose a different random seed?
Not much at all, as long as you’re using a decent number of RFFs. See our original paper. Performance is quite reproducible with different random seeds. It’s still nonetheless good practice to save the random seed you use (as always).
Training with multiple GPUs – is this possible?
The xGPR algorithm can be easily parallelized, and this feature is planned for a near-future version of xGPR.
I have multiple GPUs. When I set “model.device = ‘cuda’”, which gpu is used? Whichever one is currently active. You can determine the currently active cuda device by setting the environment variable, e.g.
export CUDA_VISIBLE_DEVICES=0so that gpu 0 is used. This isn’t ideal – we’ll add capability to allow setting a specific device in xGPR rather than via an environment variable in future.Why doesn’t xGPR have (insert my favorite kernel here)
We might be interested in adding other kernels to xGPR, but with a few caveats.
It has to be a kernel for which the random features approach can be implemented in an at least-somewhat straightforward way. Random features is much faster and more scalable than stochastic variational GPs. So much so, in fact, that for our purposes it’s not really worth implementing a kernel that can’t use random features.
We prefer kernels that are applicable to a range of problems rather than a single specific problem.
We’re less enthusiastic about kernels that have a large number of hyperparameters that need to be optimized. In our experience these are harder to work with (with some exceptions).
If you have a kernel you’d really like to see – see the Contact page, we’d love to hear more. For more background, see When should I use xGPR?.