A validation and profiling tool for AI infrastructure
Перейти к файлу
Yifan Xiong 3f19685fd9
Docs - Initialize README (#6)
Initialize README.md and update SUPPORT.md, update
* project description
* installation
* usage
* developer guide
* add dependencies version requirement
2021-02-01 20:21:12 +08:00
.github Setup: template - Add template for PR, bug report and enhancement request (#5) 2021-01-29 18:29:26 +08:00
superbench Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
tests Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
.dockerignore Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
.editorconfig Setup: Revision - Update lint rules (#7) 2021-02-01 14:12:02 +08:00
.flake8 Setup: Revision - Update lint rules (#7) 2021-02-01 14:12:02 +08:00
.gitattributes Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
.gitignore Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
.mypy.ini Setup: Revision - Update lint rules (#7) 2021-02-01 14:12:02 +08:00
.pre-commit-config.yaml Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
.style.yapf Setup: Revision - Update lint rules (#7) 2021-02-01 14:12:02 +08:00
CODE_OF_CONDUCT.md Initial CODE_OF_CONDUCT.md commit 2020-12-16 18:22:21 -08:00
LICENSE Initial LICENSE commit 2020-12-16 18:22:25 -08:00
MANIFEST.in Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
README.md Docs - Initialize README (#6) 2021-02-01 20:21:12 +08:00
SECURITY.md Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00
SUPPORT.md Docs - Initialize README (#6) 2021-02-01 20:21:12 +08:00
azure-pipelines.yml CI: Initialization - Add Azure Pipelines for checking format and running pytest (#2) 2021-01-26 10:42:51 +08:00
setup.py Docs - Initialize README (#6) 2021-02-01 20:21:12 +08:00
test.dockerfile Setup: Init - Initialize setup.py and basic configs (#4) 2021-01-28 21:01:28 +08:00

README.md

SuperBenchmark

Build Status Lint

SuperBench is a benchmarking and diagnosis tool for AI infrastructure, which supports:

  • Comprehensive AI infrastructure validation
    • Distributed validation tools to validate hundreds or thousands of servers automatically
    • Consider both raw hardware and E2E model performance with ML workload patterns
    • Provide a fast and accurate way to detect and locate hardware problems
    • Performance/Quality Gates for hardware and system release
  • Benchmarking with typical AI workload patterns
    • Provide comprehensive performance comparison between different existing hardware
    • Give a better understanding for new DL software & hardware
  • Detailed performance analysis and diagnosis
    • Provide detailed performance report and advanced analysis tool  

It includes micro-benchmark for primitive computation and communication benchmarking, and model-benchmark to measure domain-aware end-to-end deep learning workloads.

Installation

Using Python

System requirements:

  • Python: Python 3.6 or later, pip 18.0 or later
  • Platform: Ubuntu 16.04 or later (64-bit), Windows 10 (64-bit) with WSL2

Check whether Python environment is already configured:

# check Python version
python3 --version
# check pip version
python3 -m pip --version

If not, install the followings:

It's recommended to use a virtual environment (optional):

# create a new virtual environment
python3 -m venv --system-site-packages ./venv
# activate the virtual environment
source ./venv/bin/activate

# exit the virtual environment later
# after you finish running superbench
deactivate

Then install superbench through either PyPI binary or from source:

  1. PyPI Binary

    TODO

  2. From Source

    # get source code
    git clone https://github.com/microsoft/superbenchmark
    cd superbenchmark
    
    # install superbench
    python3 -m pip install .
    

Using Docker

TODO

Usage

TODO

Developer Guide

Follow Installation using Python and use dev branch.

Set Up

# get dev branch code
git clone -b dev https://github.com/microsoft/superbenchmark
cd superbenchmark

# install superbench
python3 -m pip install -e .[dev,test]

Lint and Test

# format code using yapf
python3 setup.py format

# check code style with mypy and flake8
python3 setup.py lint

# run all unit tests
python3 setup.py test

Submit a Pull Request

Please install pre-commit before git commit to run all pre-checks.

pre-commit install

Pull requests should be submitted to dev branch.

Contributing

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.

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.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.