Skip to content

Reference implementations of training benchmarks

License

Notifications You must be signed in to change notification settings

chunyuan-w/training

This branch is 101 commits behind mlcommons/training:master.

Folders and files

NameName
Last commit message
Last commit date
Jan 30, 2020
Jan 30, 2020
Apr 17, 2019
May 7, 2019
Jun 21, 2020
Apr 4, 2019
Jun 16, 2020
Jun 19, 2020
Jan 31, 2020
Apr 9, 2019
May 2, 2018
Oct 21, 2020
Aug 29, 2018
Feb 6, 2020
Oct 10, 2018
Jan 30, 2020
Oct 14, 2018
Oct 14, 2018
Jun 18, 2020
May 13, 2018
May 2, 2018
May 13, 2018

Repository files navigation

MLPerf Reference Implementations

This is a repository of reference implementations for the MLPerf benchmarks. These implementations are valid as starting points for benchmark implementations but are not fully optimized and are not intended to be used for "real" performance measurements of software frameworks or hardware.

These reference implementations are still very much "alpha" or "beta" quality. They could be improved in many ways. Please file issues or pull requests to help us improve quality.

Contents

We provide reference implementations for benchmarks in the MLPerf suite, as well as several benchmarks under development.

Each reference implementation provides the following:

  • Code that implements the model in at least one framework.
  • A Dockerfile which can be used to run the benchmark in a container.
  • A script which downloads the appropriate dataset.
  • A script which runs and times training the model.
  • Documentation on the dataset, model, and machine setup.

Running Benchmarks

These benchmarks have been tested on the following machine configuration:

  • 16 CPUs, one Nvidia P100.
  • Ubuntu 16.04, including docker with nvidia support.
  • 600GB of disk (though many benchmarks do require less disk).
  • Either CPython 2 or CPython 3, depending on benchmark (see Dockerfiles for details).

Generally, a benchmark can be run with the following steps:

  1. Setup docker & dependencies. There is a shared script (install_cuda_docker.sh) to do this. Some benchmarks will have additional setup, mentioned in their READMEs.
  2. Download the dataset using ./download_dataset.sh. This should be run outside of docker, on your host machine. This should be run from the directory it is in (it may make assumptions about CWD).
  3. Optionally, run verify_dataset.sh to ensure the was successfully downloaded.
  4. Build and run the docker image, the command to do this is included with each Benchmark.

Each benchmark will run until the target quality is reached and then stop, printing timing results.

Some these benchmarks are rather slow or take a long time to run on the reference hardware (i.e. 16 CPUs and one P100). We expect to see significant performance improvements with more hardware and optimized implementations.

About

Reference implementations of training benchmarks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 39.9%
  • Jupyter Notebook 39.3%
  • C++ 14.6%
  • Shell 2.1%
  • TypeScript 1.9%
  • Starlark 0.6%
  • Other 1.6%