Skip to content

Releases: skylineprof/skyline

Usability improvements and initial remote project support

23 Jul 03:46
Compare
Choose a tag to compare

This is the fifth feature release of the Skyline CLI. This release adds initial support for remote projects and introduces several usability improvements. It needs to be used with v0.5.0+ of the Skyline plugin.

As of this release, Skyline has been promoted from alpha to beta. The Skyline project now lives under the @skylineprof organization. Skyline also now has a website, which you can visit at https://skylineprof.github.io.

New Features

Enhancements

  • The providers have been simplified. Models returned by the skyline_model_provider() no longer need to produce a scalar tensor (i.e. Skyline no longer needs to call .backward() directly on the model's output).
  • When an error occurs during profiling, Skyline will now display the file context (file name and line number) associated with the error when possible.

Bug Fixes

  • Skyline has been updated to work with PyTorch 1.4.0 and 1.5.1

Interactive visualizations linked to batch size predictions

29 Feb 17:47
Compare
Choose a tag to compare

This is the fourth feature release of the Skyline CLI. This release adds support for interactive visualizations and needs to be used with v0.4.0+ of the Skyline Atom Plugin.

When profiling models interactively, Skyline will now generate predictive models for the model's training throughput and memory usage as a function of the batch size. Dragging the throughput and/or memory visualizations will result in mutations to the code, which indicate the predicted batch size that should be used to achieve the manipulated visualizations.

New Features

  • Interactive key performance metric visualizations
  • Batch size predictions for memory usage and training throughput

Interactive breakdown exploration and inline annotations

13 Feb 16:28
Compare
Choose a tag to compare

This is the third feature release of the Skyline CLI. This release changes the way the memory and iteration run time breakdowns are displayed and adds inline performance annotations to the code. This version of the CLI must be used with v0.3.0+ of the Skyline plugin.

The breakdowns are now displayed in a hierarchical way, based on the modules in the model. Double clicking on an entry will "zoom in" on the entry and show a breakdown of the operations within that module.

Skyline now also shows performance annotations inline. A marker will appear in the gutter for lines of code for which we have performance information. Hovering over these markers will show the contribution of the line of code to the overall memory footprint and iteration run time.

Memory and iteration run time profiling fixes

29 Jan 03:01
Compare
Choose a tag to compare

This release contains and bug fixes associated with both memory and iteration run time profiling.

Bug fixes

  • Fix leftover function name changes from refactoring (9538245)
  • Fixed an issue that caused extra memory to be tracked (0bb9403)
  • Avoid unnecessarily cloning tensors during backward pass profiling (1a40832)
  • Avoid overwriting report output files if they exist (e6ed70e)
  • Exclude unrelated double underscore functions from being tracked (15cd27c)

Iteration run time profiling

25 Jan 18:06
Compare
Choose a tag to compare

This is the second feature release of the Skyline CLI. Skyline now performs iteration run time profiling in addition to memory and throughput profiling.

This release also adds a command line interface to Skyline's iteration run time and memory profilers:

# Generate a memory usage and breakdown report
# (Run skyline memory --help for more information)
skyline memory path/to/entry/point/file --output report.sqlite

# Generate an iteration run time breakdown report
# (Run skyline time --help for more information)
skyline time path/to/entry/point/file --output report.sqlite

The generated reports are SQLite databases. You can explore these reports using the sqlite3 command line tool (sudo apt-get install sqlite3 on Ubuntu 18.04).

New Features

  • Iteration run time profiling
  • A command line interface to the iteration run time and memory profilers

Multi-file project support fixes

09 Jan 20:27
Compare
Choose a tag to compare

This release fixes issues associated with multi-file project support.

Bug fixes

  • Fix issues with importing user-defined modules
  • Fix issues related to module caching

Memory profiling and multi-file project support

09 Jan 20:19
Compare
Choose a tag to compare

This is the first production release of the Skyline CLI. Skyline now supports multi-file projects and is more robust in handling profiling sessions.

Note: The Skyline CLI and plugin are released independently (i.e. they have independent version numbers). This repository acts as a "monorepository"; it stores the code for both components. However, releases here refer to CLI releases. The plugin's releases can be found at geoffxy/skyline-atom.

The Skyline CLI can now be installed using pip:

pip install skyline-cli

Features

  • Memory profiling
  • Multi-file project support

Changes since v0.0.0

  • New name: INNPV is now Skyline
  • Temporary removal of interactive features (throughput/memory vs. batch size predictions)
  • Temporary removal of run time profiling and breakdowns
  • Stability: handle connection loss and failures

Course project completion

27 Nov 16:30
Compare
Choose a tag to compare

This release marks the final state of Skyline when it was submitted as a project for the Winter 2019 offering of CSC2524 at the University of Toronto.

Supported Features

  • Module-based iteration execution time measurement and analysis
  • Single file analysis
  • Remote machine analysis as long as the server is launched manually
  • Throughput measurement and batch size predictions using a linear iteration execution time model
  • Peak memory usage measurement and batch size predictions (using a linear model)
  • Annotation mutations for batch size predictions only
  • Source code highlighting within forward() and __init__()
  • Performance annotations when iteration time measurements are dragged