{"id":13772984,"url":"https://github.com/maestro-project/gamma","last_synced_at":"2025-05-11T05:33:59.178Z","repository":{"id":50750199,"uuid":"292138240","full_name":"maestro-project/gamma","owner":"maestro-project","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-30T15:52:49.000Z","size":864,"stargazers_count":34,"open_issues_count":6,"forks_count":18,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-17T08:44:12.633Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maestro-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-02T00:29:56.000Z","updated_at":"2024-11-14T11:54:45.000Z","dependencies_parsed_at":"2024-01-15T05:10:26.883Z","dependency_job_id":"64b2ad5b-8fd1-4b16-b92a-e93569aeecf7","html_url":"https://github.com/maestro-project/gamma","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-project%2Fgamma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-project%2Fgamma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-project%2Fgamma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maestro-project%2Fgamma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maestro-project","download_url":"https://codeload.github.com/maestro-project/gamma/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253523689,"owners_count":21921815,"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":[],"created_at":"2024-08-03T17:01:09.926Z","updated_at":"2025-05-11T05:33:58.868Z","avatar_url":"https://github.com/maestro-project.png","language":"Python","funding_links":[],"categories":["Circuit Compilers"],"sub_categories":[],"readme":"# GAMMA #\nThis is the implementation of the paper [GAMMA](https://dl.acm.org/doi/10.1145/3400302.3415639),\nGAMMA is an autonomous framework for optimizing the HW mapping of DNN models on the DNN Accelerators.\nWe use [MAESTRO](http://maestro.ece.gatech.edu/) as our cost model.\n\n![GAMMA Framework](./gamma.jpg)\n\n### Extended Works\nThis code repository also incorporates the code-bases of the extended works:\n* [DiGamma](https://arxiv.org/pdf/2201.11220.pdf)\n* [Formalism of Accelerator Flexibility](https://dl.acm.org/doi/10.1145/3530907)\n------------------------------------------------------\n### Sister Repo: Gamma-Timeloop \n* We also have GAMMA supporting [Timeloop](https://github.com/NVlabs/timeloop) as cost model. The sister repo can be found here -- [Gamma-Timeloop](https://github.com/maestro-project/gamma-timeloop).\n  \n  It enables using GAMMA algorithm to search through the design space of Timeloop, a DNN cost model from NVIDIA.\n----------------\n\n## Installation ##\n* Create virtual env\n```\nconda create --name gammaEnv python=3.6\nconda activate gammaEnv\n```\n* Install requirement\n```\npip install -r requirements.txt\n```\n\n* Download cost model and build symbolic link\n```\npython build.py\n```\n\n* Setup larger limitation for opened file if there is warning \"Too many open files.\" (for threading)\n```\nulimit -n 4096\n```\n\n### Take a Trial Run ###\n```\n./run_gamma.sh\n```\n----------------\n\n### Different Map Space Exploration Scenarios ###\n* Map space exploration for fully flexible accelerator (in a full search space): Related reading - [GAMMA](https://dl.acm.org/doi/10.1145/3400302.3415639).\n* Map space exploration for partially flexible accelerator (in a constrained search space): Related reading - [Formalism of Accelerator Flexibility](https://dl.acm.org/doi/10.1145/3530907).\n* PE(HW)-Mapping Co-exploration: Related reading - [DiGamma](https://arxiv.org/pdf/2201.11220.pdf).\n\nMore details can be found [here](./src/GAMMA/)\n\n### Resources\n* Tutorial of GAMMA, in IEEE/ACM International Symposium on Microarchitecture (MICRO), 2020 [[video](https://www.youtube.com/watch?v=gfBFRBbcA10)]\n* GAMMA paper presentation, in IEEE/ACM International Conference On Computer Aided Design (ICCAD), 2020 [[video](https://www.youtube.com/watch?v=Q7oJBJmVbGw)]\n\n### Contributor ###\n* Sheng-Chun (Felix) Kao\n* Tushar Krishna\n\n### Pull Request ###\n* We welcome pull request.\n* If you have any question, please contact Felix \u003cchuchu40507@gmail.com\u003e.\n\n### Citation ###\n```\n@inproceedings{gamma,\n    author       = {Kao, Sheng-Chun and Krishna, Tushar},\n    title        = {GAMMA: Automating the HW Mapping of DNN Models on Accelerators via Genetic Algorithm},\n    booktitle     = {ICCAD},\n  year          = {2020}\n}\n\n```\n```\n@inproceedings{digamma,\ntitle={DiGamma: Domain-aware Genetic Algorithm for HW-Mapping Co-optimization for DNN Accelerators},\nauthor={Kao, Sheng-Chun and Pellauer, Michael and Parashar, Angshuman and Krishna, Tushar},\nbooktitle     = {DATE},\nyear={2022}\n}\n```\n```\n@inproceedings{kao2022formalism,\n  title={A Formalism of DNN Accelerator Flexibility},\n  author={Kao, Sheng-Chun and Kwon, Hyoukjun and Pellauer, Michael and Parashar, Angshuman and Krishna, Tushar},\n  booktitle={Proceedings of the 2022 ACM SIGMETRICS/IFIP PERFORMANCE Joint International Conference on Measurement and Modeling of Computer Systems},\n  year={2022}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaestro-project%2Fgamma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaestro-project%2Fgamma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaestro-project%2Fgamma/lists"}