Multi GPU
This is an incomplete proof-of-concept of how to run BERT across multiple GPUs. It will take advantage of multiple GPUs' memory, but not of their compute cores.

Do not merge
Hi @dirkgr, thanks for this PR.

I think we will keep all the GPU/multi-GPU logic outside of the main library for now. It makes it easier to integrate the module in downstream libraries and integrating such modifications at the current stage would cause too many breaking changes for the users unfortunately.

So I'm closing this PR for now.<|||||>Oh, this was only meant for internal consumption.

That said, I thought a bit about how to make it general enough to properly integrate it. I thought the setting for multi-GPU could be part of the config, so it wouldn't affect normal operation. How would you want to do it?

I didn't get that much interest in this patch internally though, so this is not the most important project right now.