GithubHelp home page GithubHelp logo

jokeren / benchmark Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pytorch/benchmark

0.0 2.0 0.0 220.5 MB

License: BSD 3-Clause "New" or "Revised" License

Python 60.10% C++ 1.69% Shell 0.55% CMake 0.06% Dockerfile 0.11% Makefile 0.02% MATLAB 0.11% Jupyter Notebook 35.66% TeX 0.06% Cuda 1.63%

benchmark's Introduction

Pytorch Benchmarks

This is a collection of open source benchmarks used to evaluate pytorch performance.

models contains copies of popular or exemplary workloads which have been modified to (a) expose a standardized API for benchmark drivers, (b) optionally, be JITable, (c) contain a miniature version of train/test data and a dependency install script.

Installation

The benchmark suite should be self contained in terms of dependencies, except for the torch products which are intended to be installed separately so different torch versions can be benchmarked.

Use python 3.7 as currently there are compatibility issues with 3.8+. Conda is optional but suggested. conda install -y python=3.7

Install pytorch, torchvision and torchtext conda install -y pytorch torchtext torchvision -c pytorch-nightly

Install the benchmark suite, which will recursively install dependencies for all the models python install.py

Notes

  • Setup steps require connectivity, make sure to enable a proxy if needed.
  • See the CI scripts and their orchestration in config.yml for hints about how to replicate the CI environment if you have issues
  • PyTorch versions before 1.6 are not compatible with all the models in torchbenchmark. See branch wconstab/compare_torch_versions for a set of models that worked back to torch 1.4.0.
  • torch, torchvision, torchtext must all be installed from the same build process. This means it isn't possible to mix conda torchtext with pip torch, or mix built-from-source torch with pip torchtext. It's important to match even the conda channel (nightly vs regular). This is due to differences in the compilation process used by different packaging systems producing incompatible python binary extensions.

Running Model Benchmarks

There are currently two top-level scripts for running the models.

test.py offers the simplest wrapper around the infrastructure for iterating through each model and installing and executing it.

test_bench.py is a pytest-benchmark script that leverages the same infrastructure but collects benchmark statistics and supports filtering ala pytest.

In each model repo, the assumption is that the user would already have all of the torch family of packages installed (torch, torchtext, torchvision, ...) but it installs the rest of the dependencies for the model.

Using test.py

python test.py will execute the APIs for each model, as a sanity check. For benchmarking, use test_bench.py. It is based on unittest, and supports filtering via CLI.

Using pytest-benchmark driver

pytest test_bench.py invokes the benchmark driver. See --help for a complete list of options.

Some useful options include

  • --benchmark-autosave (or other save related flags) to get .json output
  • -k <filter expression> (standard pytest filtering)
  • --collect-only only show what tests would run, useful to see what models there are or debug your filter expression

Nightly CI runs

Currently, models run on nightly pytorch builds and push data to scuba.

See Unidash (internal only)

Adding new models

See Adding Models.

Legacy

See legacy for rnn benchmarks and related scripts that were previously at the top level of this repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.