https://github.com/cornell-zhang/allo
Allo: A Programming Model for Composable Accelerator Design
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README -
✓Academic publication links
Links to: acm.org -
○Academic email domains
-
✓Institutional organization owner
Organization cornell-zhang has institutional domain (zhang.ece.cornell.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.8%) to scientific vocabulary
Keywords
Repository
Allo: A Programming Model for Composable Accelerator Design
Basic Info
- Host: GitHub
- Owner: cornell-zhang
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://cornell-zhang.github.io/allo
- Size: 4.48 MB
Statistics
- Stars: 272
- Watchers: 9
- Forks: 52
- Open Issues: 37
- Releases: 0
Topics
Metadata Files
README.md
Accelerator Design Language
Documentation | Installation | Tutorials
Allo is a Python-embedded Accelerator Design Language (ADL) and compiler that facilitates the construction of large-scale, high-performance hardware accelerators in a modular and composable manner. Allo has several key features:
* Progressive hardware customizations: Allo decouples hardware customizations from algorithm specifications and treats each hardware customization as a primitive that performs a rewrite on the program. Allo not only decouples the loop-based transformations, but also extends the decoupling to memory, communication, and data types. All the transformations are built on top of MLIR that is easier to target different backends.
* Reusable parameterized kernel templates: Allo supports declaring type variables during kernel creation and instantiating the kernel when building the hardware executable, which is an important feature for building reusable hardware kernel libraries. Allo introduces a concise grammar for creating kernel templates, eliminating the need for users to possess complicated metaprogramming expertise.
* Composable schedules: Allo empowers users to construct kernels incrementally from the bottom up, adding customizations one at a time while validating the correctness of each submodule. Ultimately, multiple schedules are progressively integrated into a complete design using the .compose() primitive. This approach, unachievable by prior top-down methods, significantly enhances productivity and debuggability.
Getting Started
Please check out the Allo documentation for installation instructions and tutorials. If you encounter any problems, please feel free to open an issue.
Publications
Please refer to our PLDI'24 paper for more details. If you use Allo in your research, please use the following bibtex entry to cite us:
bibtex
@article{chen2024allo,
author = {Hongzheng Chen and Niansong Zhang and Shaojie Xiang and Zhichen Zeng and Mengjia Dai and Zhiru Zhang},
title = {Allo: A Programming Model for Composable Accelerator Design},
journal = {Proc. ACM Program. Lang.},
year = {2024},
month = {jun},
url = {https://doi.org/10.1145/3656401},
doi = {10.1145/3656401},
articleno = {171},
volume = {8},
number = {PLDI},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
issue_date = {June 2024},
}
Please also consider citing the following papers if you utilize specific components of Allo: * AIE backend: Jinming Zhuang, Shaojie Xiang, Hongzheng Chen, Niansong Zhang, Zhuoping Yang, Tony Mao, Zhiru Zhang, Peipei Zhou, "ARIES: An Agile MLIR-Based Compilation Flow for Reconfigurable Devices with AI Engines", International Symposium on Field-Programmable Gate Arrays (FPGA), 2025. (Best paper nominee) * Equivalence checker: Louis-Noël Pouchet, Emily Tucker, Niansong Zhang, Hongzheng Chen, Debjit Pal, Gabriel Rodríguez, Zhiru Zhang, "Formal Verification of Source-to-Source Transformations for HLS", International Symposium on Field-Programmable Gate Arrays (FPGA), 2024. (Best paper award) * LLM accelerator: Hongzheng Chen, Jiahao Zhang, Yixiao Du, Shaojie Xiang, Zichao Yue, Niansong Zhang, Yaohui Cai, Zhiru Zhang, "Understanding the Potential of FPGA-Based Spatial Acceleration for Large Language Model Inference", ACM Transactions on Reconfigurable Technology and Systems (TRETS), 2024. (FCCM’24 Journal Track)
Related Projects
Owner
- Name: Cornell Zhang Research Group
- Login: cornell-zhang
- Kind: organization
- Website: https://zhang.ece.cornell.edu/
- Repositories: 12
- Profile: https://github.com/cornell-zhang
GitHub Events
Total
- Issues event: 74
- Watch event: 131
- Delete event: 10
- Issue comment event: 132
- Push event: 114
- Pull request review comment event: 185
- Pull request review event: 182
- Pull request event: 218
- Fork event: 29
- Create event: 8
Last Year
- Issues event: 74
- Watch event: 131
- Delete event: 10
- Issue comment event: 132
- Push event: 114
- Pull request review comment event: 185
- Pull request review event: 182
- Pull request event: 218
- Fork event: 29
- Create event: 8
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 64
- Total pull requests: 161
- Average time to close issues: 28 days
- Average time to close pull requests: 2 days
- Total issue authors: 29
- Total pull request authors: 18
- Average comments per issue: 0.81
- Average comments per pull request: 0.43
- Merged pull requests: 127
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 46
- Pull requests: 141
- Average time to close issues: 11 days
- Average time to close pull requests: 2 days
- Issue authors: 23
- Pull request authors: 16
- Average comments per issue: 0.85
- Average comments per pull request: 0.5
- Merged pull requests: 113
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- chhzh123 (10)
- zzzDavid (6)
- AdrianLiu00 (5)
- zeroherolin (4)
- kaizizzzzzz (3)
- slbioig (3)
- walkieq (3)
- YiminGao0113 (3)
- Oh-Afterglow (3)
- jiahanxie353 (2)
- cshi15 (2)
- huajie-zhong (2)
- Juhyoung29 (2)
- amoghanshu (1)
- kanhao100 (1)
Pull Request Authors
- chhzh123 (83)
- he-andy (14)
- EthanMeng324 (13)
- Fangtangtang (12)
- AdrianLiu00 (12)
- zzzDavid (7)
- silvenachen (4)
- Oh-Afterglow (3)
- huajie-zhong (2)
- JackXinhangGUO (2)
- tmao8 (2)
- jiahanxie353 (1)
- sx286 (1)
- bzhang1945 (1)
- ZRQ0410 (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- JamesIves/github-pages-deploy-action releases/v3 composite
- actions/checkout v3 composite
- actions/upload-artifact v1 composite
- cpina/github-action-push-to-another-repository main composite
- astpretty *
- autodocsumm *
- matplotlib *
- numpy *
- piccolo-theme *
- sphinx *
- sphinx-copybutton *
- sphinx-gallery *
- sphinx_rtd_theme *
- sphinxcontrib-googleanalytics *
- PyYAML *
- astpretty *
- black ==23.11.0
- dataclasses *
- matplotlib *
- ninja *
- numpy *
- packaging *
- pandas *
- psutil *
- pybind11 >=2.8.0
- pylint ==3.0.2
- pytest *
- sympy *
- tabulate *
- xmltodict *