We'd hoped to keep contexts completely transparent to the user but as more users attempt multi-GPU set-ups with CUDAfy we've needed to expose this a little. Maybe it needs to go further but let's see how this works out for
now.

If you build from the latest sources you will see a new method added to GPGPU called SetCurrentContext. This must be called when switching between GPGPUs.

Important to remember is that creating a GPGPU using GetDevice will set the current context to the new context that is generated for every new device. You can check if your context is current to a device via the GPGPU.IsCurrentContext property. If this is false
then call SetCurrentContext before doing anything with that GPGPU.

If you look at MultiGPUTests.cs you'll see a new unit test that illustrates the usage (plus the new CopyDeviceToDevice method):