README.md 3.05 KB
Newer Older
Shaden Smith's avatar
Shaden Smith committed
1
2
# DeepSpeed

Jeff Rasley's avatar
Jeff Rasley committed
3
[![Build Status](https://msdlserving.visualstudio.com/DeepScale/_apis/build/status/DeepSpeed%20GPU%20CI?branchName=master)](https://msdlserving.visualstudio.com/DeepScale/_build/latest?definitionId=36&branchName=master)
Jeff Rasley's avatar
Jeff Rasley committed
4
5
[![License MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/Microsoft/DeepSpeed/blob/master/LICENSE)

Jeff Rasley's avatar
Jeff Rasley committed
6

Shaden Smith's avatar
Shaden Smith committed
7
8
9
10
11
12
13
14
15
16
17
18
19
## Installation


## Testing

DeepSpeed tracks two types of tests: unit tests and more costly model convergence tests.
The model convergence tests train
[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) and measure
end-to-end convergence and related metrics.  Unit tests are found in `tests/unit/` and
model convergence tests are found in `tests/model/`.

### Unit Tests
[PyTest](https://docs.pytest.org/en/latest/) is used to execute tests. PyTest can be
20
21
installed from PyPI via `pip install pytest`. Simply invoke `pytest --forked` to run the
unit tests:
Shaden Smith's avatar
Shaden Smith committed
22

23
    pytest --forked tests/unit/
Shaden Smith's avatar
Shaden Smith committed
24
25

You can also provide the `-v` flag to `pytest` to see additional information about the
26
27
tests. Note that [pytest-forked](https://github.com/pytest-dev/pytest-forked) and the
`--forked` flag are required to test CUDA functionality in distributed tests.
Shaden Smith's avatar
Shaden Smith committed
28
29
30
31
32
33
34
35
36
37
38
39

### Model Tests
To execute model tests, first [install DeepSpeed](#installation). The
[DeepSpeedExamples](https://github.com/microsoft/DeepSpeedExamples/) repository is cloned
as part of this process. Next, execute the model test driver:

    cd tests/model/
    pytest run_sanity_check.py



## Contributing
40

yuxionghe's avatar
yuxionghe committed
41
42
DeepSpeed welcomes your contributions!

Shaden Smith's avatar
Shaden Smith committed
43
44
45
46
47
48
49
50
51
52
53
### Prerequisites

DeepSpeed uses [pre-commit](https://pre-commit.com/) to ensure that formatting is
consistent across DeepSpeed.  First, ensure that `pre-commit` is installed from either
installing DeepSpeed or `pip install pre-commit`.  Next, the pre-commit hooks must be
installed once before commits can be made:

    pre-commit install

Afterwards, our suite of formatting tests run automatically before each `git commit`. You
can also run these manually:
yuxionghe's avatar
yuxionghe committed
54

Shaden Smith's avatar
Shaden Smith committed
55
    pre-commit run --all-files
yuxionghe's avatar
yuxionghe committed
56
57


Shaden Smith's avatar
Shaden Smith committed
58
### Contributor License Agreement
yuxionghe's avatar
yuxionghe committed
59

Shaden Smith's avatar
Shaden Smith committed
60
61
62
63
This project welcomes contributions and suggestions.  Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to, and
actually do, grant us the rights to use your contribution. For details, visit
https://cla.opensource.microsoft.com.
64

Shaden Smith's avatar
Shaden Smith committed
65
66
67
68
When you submit a pull request, a CLA bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply
follow the instructions provided by the bot. You will only need to do this once across
all repos using our CLA.
69

Shaden Smith's avatar
Shaden Smith committed
70
### Code of Conduct
yuxionghe's avatar
yuxionghe committed
71

Shaden Smith's avatar
Shaden Smith committed
72
73
74
75
76
This project has adopted the [Microsoft Open Source Code of
Conduct](https://opensource.microsoft.com/codeofconduct/).  For more information see the
[Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact
[opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or
comments.