split single_gpu and multi_gpu
# What does this PR do?

Fix the scheduled CI issue caused by the 256 limits (jobs generated from matrix).

Note that the workflow run page has a graph that has no single-gpu and multi-gpu on it. But on the left side, the job names have matrix mentioned.

<img width="271" alt="Screenshot 2022-05-04 145601" src="https://user-images.githubusercontent.com/2521628/166685617-6c008556-dd44-4369-9b6a-b7b1c22cbc9d.png">


_The documentation is not available anymore as the PR was closed or merged._<|||||>> Thanks for your PR! Did you launch it as a trial to see if it works? I see the following should be completed, on line 303:
> 
> [setup, run_tests_gpu, run_examples_gpu, run_pipelines_tf_gpu, run_pipelines_torch_gpu, run_all_tests_torch_cuda_extensions_gpu]

You are right, that line should be changed. I haven't launched it (just tried with a dummy example). I will launch it now.<|||||>You can launch it with only 1-2 models in each run, for example by updating this line:
```
          echo "::set-output name=matrix::$(python3 -c 'import os; tests = os.getcwd(); model_tests = os.listdir(os.path.join(tests, "models")); d1 = sorted(list(filter(os.path.isdir, os.listdir(tests)))); d2 = sorted(list(filter(os.path.isdir, [f"models/{x}" for x in model_tests]))); d1.remove("models"); d = d2 + d1; print(d)')"
```
to
```
          echo "::set-output name=matrix::$(python3 -c 'import os; tests = os.getcwd(); model_tests = os.listdir(os.path.join(tests, "models"))[:2]; d1 = sorted(list(filter(os.path.isdir, os.listdir(tests)))); d2 = sorted(list(filter(os.path.isdir, [f"models/{x}" for x in model_tests]))); d1.remove("models"); d = d2 + d1; print(d)')"
```

This way you'll test the full behavior without having 12-hour long iterations.<|||||>It took sometime, but the run looks good.

https://github.com/huggingface/transformers/actions/runs/2276209307<|||||>Looks good, thanks @ydshieh!