habitat

🔮 Execution time predictions for deep neural network training iterations across different GPUs.

https://github.com/geoffxy/habitat

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 8 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
    2 of 4 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary

Keywords

deep-learning deep-neural-networks gpu neural-networks performance performance-prediction
Last synced: 6 months ago · JSON representation ·

Repository

🔮 Execution time predictions for deep neural network training iterations across different GPUs.

Basic Info
  • Host: GitHub
  • Owner: geoffxy
  • License: apache-2.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 308 KB
Statistics
  • Stars: 62
  • Watchers: 4
  • Forks: 12
  • Open Issues: 0
  • Releases: 1
Topics
deep-learning deep-neural-networks gpu neural-networks performance performance-prediction
Created over 4 years ago · Last pushed about 3 years ago
Metadata Files
Readme License Citation

README.md

Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training

DOI DOI

Habitat is a tool that predicts a deep neural network's training iteration execution time on a given GPU. It currently supports PyTorch. To learn more about how Habitat works, please see our research paper.

Running From Source

Currently, the only way to run Habitat is to build it from source. You should use the Docker image provided in this repository to make sure that you can compile the code.

  1. Download the Habitat pre-trained models.
  2. Run extract-models.sh under analyzer to extract and install the pre-trained models.
  3. Run setup.sh under docker/ to build the Habitat container image.
  4. Run start.sh to start a new container. By default, your home directory will be mounted inside the container under ~/home.
  5. Once inside the container, run install-dev.sh under analyzer/ to build and install the Habitat package.
  6. In your scripts, import habitat to get access to Habitat. See experiments/run_experiment.py for an example showing how to use Habitat.

Note: Habitat needs access to your GPU's performance counters, which requires special permissions if you are running with a recent driver (418.43 or later). If you encounter a CUPTI_ERROR_INSUFFICIENT_PRIVILEGES error when running Habitat, please follow the instructions here and in issue #5.

License

The code in this repository is licensed under the Apache 2.0 license (see LICENSE and NOTICE), with the exception of the files mentioned below.

This software contains source code provided by NVIDIA Corporation. These files are:

  • The code under cpp/external/cupti_profilerhost_util/ (CUPTI sample code)
  • cpp/src/cuda/cuda_occupancy.h

The code mentioned above is licensed under the NVIDIA Software Development Kit End User License Agreement.

We include the implementations of several deep neural networks under experiments/ for our evaluation. These implementations are copyrighted by their original authors and carry their original licenses. Please see the corresponding README files and license files inside the subdirectories for more information.

Research Paper

Habitat began as a research project in the EcoSystem Group at the University of Toronto. The accompanying research paper will appear in the proceedings of USENIX ATC'21. If you are interested, you can read a preprint of the paper here.

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

bibtex @inproceedings{habitat-yu21, author = {Yu, Geoffrey X. and Gao, Yubo and Golikov, Pavel and Pekhimenko, Gennady}, title = {{Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training}}, booktitle = {{Proceedings of the 2021 USENIX Annual Technical Conference (USENIX ATC'21)}}, year = {2021}, }

Owner

  • Name: Geoffrey Yu
  • Login: geoffxy
  • Kind: user
  • Location: Cambridge, MA
  • Company: MIT CSAIL

Computer Science PhD Student at MIT | SE '18 @uWaterloo

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use Habitat, please cite it as below."
authors:
- family-names: "Yu"
  given-names: "Geoffrey X."
- family-names: "Gao"
  given-names: "Yubo"
- family-names: "Golikov"
  given-names: "Pavel"
- family-names: "Pekhimenko"
  given-names: "Gennady"
title: "Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training"
version: 1.0.0
doi: 10.5281/zenodo.4885489
date-released: 2021-06-01
url: "https://github.com/geoffxy/habitat"
preferred-citation:
  type: conference-paper
  authors:
  - family-names: "Yu"
    given-names: "Geoffrey X."
  - family-names: "Gao"
    given-names: "Yubo"
  - family-names: "Golikov"
    given-names: "Pavel"
  - family-names: "Pekhimenko"
    given-names: "Gennady"
  collection-title: "Proceedings of the 2021 USENIX Annual Technical Conference (USENIX ATC '21)"
  start: 503
  end: 521
  title: "Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training"
  month: 7
  year: 2021

GitHub Events

Total
  • Watch event: 9
  • Fork event: 1
Last Year
  • Watch event: 9
  • Fork event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 11
  • Total Committers: 4
  • Avg Commits per committer: 2.75
  • Development Distribution Score (DDS): 0.273
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Geoffrey Yu g****u@c****u 8
百地 希留耶 6****i 1
叶志晟 y****0@1****m 1
Yubo Gao y****o@c****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 10
  • Total pull requests: 2
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Total issue authors: 7
  • Total pull request authors: 2
  • Average comments per issue: 2.7
  • Average comments per pull request: 1.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • yzs981130 (2)
  • liayan (2)
  • joapolarbear (2)
  • Baek-sohyeon (1)
  • mhqmhy (1)
  • xiyiyia (1)
  • LyleLuo (1)
Pull Request Authors
  • yzs981130 (1)
  • KiruyaMomochi (1)
Top Labels
Issue Labels
question (4)
Pull Request Labels

Dependencies

docker/Dockerfile docker
  • nvidia/cuda 10.1-cudnn7-devel-ubuntu18.04 build