{"id":17688082,"url":"https://github.com/geoffxy/habitat","last_synced_at":"2025-06-28T18:36:40.278Z","repository":{"id":45956633,"uuid":"372279560","full_name":"geoffxy/habitat","owner":"geoffxy","description":"🔮 Execution time predictions for deep neural network training iterations across different GPUs.","archived":false,"fork":false,"pushed_at":"2022-11-26T04:46:14.000Z","size":315,"stargazers_count":62,"open_issues_count":0,"forks_count":12,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-07T02:46:40.271Z","etag":null,"topics":["deep-learning","deep-neural-networks","gpu","neural-networks","performance","performance-prediction"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geoffxy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-30T17:45:52.000Z","updated_at":"2025-04-30T08:31:34.000Z","dependencies_parsed_at":"2023-01-22T17:00:07.065Z","dependency_job_id":null,"html_url":"https://github.com/geoffxy/habitat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/geoffxy/habitat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffxy%2Fhabitat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffxy%2Fhabitat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffxy%2Fhabitat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffxy%2Fhabitat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoffxy","download_url":"https://codeload.github.com/geoffxy/habitat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoffxy%2Fhabitat/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262477610,"owners_count":23317515,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deep-learning","deep-neural-networks","gpu","neural-networks","performance","performance-prediction"],"created_at":"2024-10-24T11:43:19.885Z","updated_at":"2025-06-28T18:36:40.260Z","avatar_url":"https://github.com/geoffxy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Habitat: A Runtime-Based Computational Performance Predictor for Deep Neural Network Training\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4885489.svg)](https://doi.org/10.5281/zenodo.4885489)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4876277.svg)](https://doi.org/10.5281/zenodo.4876277)\n\nHabitat is a tool that predicts a deep neural network's training iteration\nexecution time on a given GPU. It currently supports PyTorch. To learn more\nabout how Habitat works, please see our [research\npaper](https://arxiv.org/abs/2102.00527).\n\n\n## Running From Source\n\nCurrently, the only way to run Habitat is to build it from source. You should\nuse the Docker image provided in this repository to make sure that you can\ncompile the code.\n\n1. Download the [Habitat pre-trained\n   models](https://doi.org/10.5281/zenodo.4876277).\n2. Run `extract-models.sh` under `analyzer` to extract and install the\n   pre-trained models.\n3. Run `setup.sh` under `docker/` to build the Habitat container image.\n4. Run `start.sh` to start a new container. By default, your home directory\n   will be mounted inside the container under `~/home`.\n5. Once inside the container, run `install-dev.sh` under `analyzer/` to build\n   and install the Habitat package.\n6. In your scripts, `import habitat` to get access to Habitat. See\n   `experiments/run_experiment.py` for an example showing how to use Habitat.\n\n**Note:** Habitat needs access to your GPU's performance counters, which\nrequires special permissions if you are running with a recent driver (418.43 or\nlater). If you encounter a `CUPTI_ERROR_INSUFFICIENT_PRIVILEGES` error when\nrunning Habitat, please follow the instructions\n[here](https://developer.nvidia.com/ERR_NVGPUCTRPERM)\nand in [issue #5](https://github.com/geoffxy/habitat/issues/5).\n\n\n## License\n\nThe code in this repository is licensed under the Apache 2.0 license (see\n`LICENSE` and `NOTICE`), with the exception of the files mentioned below.\n\nThis software contains source code provided by NVIDIA Corporation. These files\nare:\n\n- The code under `cpp/external/cupti_profilerhost_util/` (CUPTI sample code)\n- `cpp/src/cuda/cuda_occupancy.h`\n\nThe code mentioned above is licensed under the [NVIDIA Software Development\nKit End User License Agreement](https://docs.nvidia.com/cuda/eula/index.html).\n\nWe include the implementations of several deep neural networks under\n`experiments/` for our evaluation. These implementations are copyrighted by\ntheir original authors and carry their original licenses. Please see the\ncorresponding `README` files and license files inside the subdirectories for\nmore information.\n\n\n## Research Paper\n\nHabitat began as a research project in the [EcoSystem\nGroup](https://www.cs.toronto.edu/ecosystem) at the [University of\nToronto](https://cs.toronto.edu). The accompanying research paper will appear\nin the proceedings of [USENIX\nATC'21](https://www.usenix.org/conference/atc21/presentation/yu). If you are\ninterested, you can read a preprint of the paper\n[here](https://arxiv.org/abs/2102.00527).\n\nIf you use Habitat in your research, please consider citing our paper:\n\n```bibtex\n@inproceedings{habitat-yu21,\n  author = {Yu, Geoffrey X. and Gao, Yubo and Golikov, Pavel and Pekhimenko,\n    Gennady},\n  title = {{Habitat: A Runtime-Based Computational Performance Predictor for\n    Deep Neural Network Training}},\n  booktitle = {{Proceedings of the 2021 USENIX Annual Technical Conference\n    (USENIX ATC'21)}},\n  year = {2021},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoffxy%2Fhabitat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeoffxy%2Fhabitat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeoffxy%2Fhabitat/lists"}