Description
We are getting resource constrained on how many multi-GPU tests we can run. To address this, we should split apart which tests require being run on 2 GPUs and which can run on a single.
The approach is:
- Create pytest markers (registering them in
pytest.ini to avoid warnings): multigpu and singlegpu
- Create new github action workflows to execute on the
2GPU runners, and use the multigpu test fixture.
- Run the rest of the tests on the
1GPU runners
This will allow us to run the single and multi-gpu tests in parallel, and only use the limited multi-gpu resources for tests that actually require it.
Annotating tests
To run tests only in multi-gpu settings:
@pytest.mark.multigpu
def test_multi():
assert True
To run tests in both single- and multiple-gpu settings:
@pytest.mark.singlegpu
@pytest.mark.multigpu
def test_both():
assert True
To run tests in single-gpu settings only, no annotation is needed:
def test_single():
assert True
Running tests
To execute the tests, use the following pytest commands:
To run multi-gpu tests:
To run single-gpu tests, we need two commands. One will run the unannotated tests (most of them) the other will run the single-gpu setting of the ones marked as both singlegpu and multigpu
pytest -m "not multigpu"
pytest -m "singlegpu"
Repositories
Description
We are getting resource constrained on how many multi-GPU tests we can run. To address this, we should split apart which tests require being run on 2 GPUs and which can run on a single.
The approach is:
pytest.inito avoid warnings):multigpuandsinglegpu2GPUrunners, and use themultigputest fixture.1GPUrunnersThis will allow us to run the single and multi-gpu tests in parallel, and only use the limited multi-gpu resources for tests that actually require it.
Annotating tests
To run tests only in multi-gpu settings:
To run tests in both single- and multiple-gpu settings:
To run tests in single-gpu settings only, no annotation is needed:
Running tests
To execute the tests, use the following pytest commands:
To run multi-gpu tests:
pytest -m "multigpu"To run single-gpu tests, we need two commands. One will run the unannotated tests (most of them) the other will run the single-gpu setting of the ones marked as both
singlegpuandmultigpuRepositories