[examples tests] tests that are fine on multi-gpu
Author: stas00
Pull request: yes

This PR removes `require_torch_non_multi_gpu_but_fix_me` for those tests I know should work. Well, they used to work before some recent PRs https://github.com/huggingface/transformers/pull/8073#issuecomment-728677627 - my suspicion is that the problem wasn't detected before it was merged because these tests were skipped as the dev was probably on a multi-gpu machine. So we need to sort this issue out sooner than later.

Currently a bunch of `examples` tests get skipped for devs with multi-gpus - it's probably a good idea for each dev with more than 1 gpu to take a sub-folder under `examples` and test which tests can be run on multi-gpu and which can't.

1. ensure you're on a multi-gpu machine - don't take this assignment if you don't have 2+ gpus
2. pick a test file and remove `@require_torch_non_multi_gpu_but_fix_me` from its tests if any
3. don't forget RUN_SLOW=1 - probably just always add it so tests aren't missed.
4. run tests 
5. if any tests fail either fix those or restore `@require_torch_non_multi_gpu_but_fix_me` for the failing tests. if the failure is not multi-gpu related please file an issue.
6. go to 2 until no more test files is left.
7. send a PR with changes for this sub-folder you chose.

To remind, the initial skip-all-examples-tests-on-multi-gpu tests was added so that we could start multi-gpu tests on github runner CI.

If meanwhile you have a problem with important examples tests skipping, please force a single gpu mode with:

```
CUDA_VISIBLE_DEVICES=0 pytest
```

I trust @LysandreJik or someone else can coordinate this effort? 


Comments:
CI failure is unrelated.

Hi @stas00! We're currently strongly focusing on the v4.0.0 release. Your proposal here is definitely interesting, and we can take a look at doing this when we do a large test dive, since we have a few things to fix:
- The multi-gpu tests you mention
- The tests for torch v1.3.0+
- The current slow tests are not all passing
- The model templates tasting framework desperately needs an improvement.

I'll come back to you next week regarding this once everything has settled down. Thanks for your patience! 

It doesn't sound like my comment drove the point across - the problem is that now most examples tests are skipped if the developer has 2+ cards, resulting in commits that break master https://github.com/huggingface/transformers/pull/8073 - this is a problem for the pending release obviously.

I originally suggested to explicitly enable tests that have been ported to be run on multi-gpu CI, but since it was decided to run them all and instead to disable them on masse and then re-enable them in groups as they get ported, but nothing has been done about it, we now have the situation where a huge part of the test suite is practically disabled.

Please let me know whether you still think this is secondary...

If I understand correctly, you're saying that now examples tests are skipped if the environment has 2+ cards. So the CI still runs the example tests on single-gpu, correct?

And I believe we never had a multi-gpu ci that worked for examples, so we're essentially at the same point we've always been: examples are not tested in a multi-gpu setting. Is that correct? If it is, how is that a problem for the pending release, as examples are independent of releases? 

You are correct with regards to CIs, yes. But who is now impacted is the developers. If @thomwolf run the tests before committing https://github.com/huggingface/transformers/pull/8073 he would have noticed the failure. My fantasy is that he has 2+ cards, did run the tests, which they got skipped and hence he happily committed the change unware that it had issues. Now seq2seq is broken. 

I was surprised that this happened, scrambled to run the tests and promptly discovered that they were skipped since I have 2 cards. Once I forced 1-gpu with CUDA_VISIBLE_DEVICES the tests failed. That's why I urgently made this PR and encouraged we bring that incomplete effort to completion.

It's possible that my fantasy was incorrect, and this is just the situation were we rely on CIs to catch the errors. But since CIs don't run gpu, merges look good.

(and nothing personal against @thomwolf, on the contrary I feel that I'm to blame that I disabled the tests on multi-gpu and didn't see it through for them to be re-enabled)