Skip to content
This repository has been archived by the owner on May 18, 2022. It is now read-only.
/ skyline Public archive

๐Ÿ™ Interactive performance profiling and debugging tool for PyTorch neural networks.

License

Notifications You must be signed in to change notification settings

UofT-EcoSystem/skyline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Skyline License

This repository is not being maintained. Please see https://github.com/CentML/skyline

Skyline is a tool to profile and debug the training performance of PyTorch neural networks.

Installation

Skyline works with GPU-based neural networks that are implemented in PyTorch.

To run Skyline, you need:

  • A system equipped with an NVIDIA GPU
  • PyTorch 1.1.0+
  • Python 3.6+ or Python 3.7+ on OSX
  • Poetry

Installation from source

git clone https://github.com/skylineprof/skyline.git
cd skyline
poetry install
poetry run skyline --help

Installation from PyPi

Note: Not implemented yet

Installing with Poetry

poetry add skyline-profiler
poetry run skyline --help

Installing with Pipenv

pipenv install skyline-profiler
pipenv run skyline --help

Installing with Pip

python3 -m pip install skyline-profiler
python3 skyline

Usage example

To use Skyline in your project, you need to first write an entry point file, which is a regular Python file that describes how your model is created and trained. See the Entry Point for more information.

Once your entry point file is ready, there are two ways to profile interactive profiling and standalone profiling.

Interactive Profiling

poetry run skyline interactive --skip-atom path/to/entry/point/file

Standalone Profiling

Standalone profiling is useful when you just want access to Skyline's profiling functionality. Skyline will save the profiling results (called a "report") into a SQLite database file that you can then query yourself. We describe the database schema for Skyline's run time and memory reports in the Run Time Report Format and Memory Report Format pages respectively.

To have Skyline perform run time profiling, you use the skyline time subcommand. In addition to the entry point file, you also need to specify the file where you want Skyline to save the run time profiling report using the --output or -o flag.

poetry run skyline time entry_point.py --output my_output_file.sqlite

Launching memory profiling is almost the same as launching run time profiling. You just need to use skyline memory instead of skyline time.

poetry run skyline memory entry_point.py --output my_output_file.sqlite

Development Environment Setup

From the project root, do

poetry install

Release Process

  1. Make sure you're on main branch and it is clean
  2. Run tools/prepare-release.sh which will:
    • Increment the version
    • Create a release branch
    • Create a release PR
  3. After the PR is merged build-and-publish-new-version.yml GitHub action will:
    • build the Python Wheels
    • GitHub release
    • Try to publish to Test PyPI
    • Subject to approval publish to PyPI

Release History

See Releases

Meta

Skyline began as a research project at the University of Toronto in collaboration with Geofrey Yu, Tovi Grossman and Gennady Pekhimenko.

The accompanying research paper appears in the proceedings of UIST'20. If you are interested, you can read a preprint of the paper here.

If you use Skyline in your research, please consider citing our paper:

@inproceedings{skyline-yu20,
  title = {{Skyline: Interactive In-Editor Computational Performance Profiling
    for Deep Neural Network Training}},
  author = {Yu, Geoffrey X. and Grossman, Tovi and Pekhimenko, Gennady},
  booktitle = {{Proceedings of the 33rd ACM Symposium on User Interface
    Software and Technology (UIST'20)}},
  year = {2020},
}

It is distributed under Apache 2.0 license. See LICENSE and NOTICE for more information.

Contributing

Check out CONTRIBUTING.md for more information on how to help with Skyline.