athena
ATHENA: Analytical tool for measuring heterogeneous neuromorphic hardware
Science Score: 44.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
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.9%) to scientific vocabulary
Keywords
Repository
ATHENA: Analytical tool for measuring heterogeneous neuromorphic hardware
Basic Info
Statistics
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
- Releases: 1
Topics
Metadata Files
README.md
`
______ __________ ____ _____ _______ ______ _____ _______ _\*/ \*/_
/ | | | | | | | / |_\/%% ,___, %%\/_
/ | | | | | | | / |/%%/ ( 0,0 ) \%%\/_
/ |_ __| | | ____/ | | / |%%|/ /777``) \|%%%|/
/ + | | | | | | |/ + |%%%| ////) |%%%%%|/_
/ | | | | | | _/ | | |%%%%///// /%%%%%|/_
/ | | | | | | | | | | | |\%%%%---""---%%%%|/_
/___|/ |/ ||/_/|_/|__/ \%%%%%%%%%%%%%%/
````
ATHENA
ATHENA is an analytical analysis tool for estimation of the performance of dataflow hardware with analog components. The tool is based on / leverages the Timeloop system along with the Accelergy energy estimation library.
The tool uses Accelergy to generate computation and data-movement performance look-up tables with analog components, which have a non-linear computational cost when compared to digital components. This table is generated in a Timeloop compatible format, allowing Timeloop to generate performance estimates for various architectures.
The software uses the Timeloop+Accelergy hardware description format to generate these tables, but with new components which can represent either a complete analog crossbar array or subcomponents of an analog crossbar array.
This code is based on and tied to work published in ICRC 2022 [1].
Design
ATHENA uses static lookup tools to generate performance estimates for a given architecture. In order to support analog devices, which can have non-linear relationships between the number of computations and energy, we support the analog devices as a set of dummy compute units attached to memory components. In an ATHENA component file, a "fat" PE unit consists of a memory layer attached to a pe layer. The memory layer determines the performance of the crossbar array, while the compute layer allows Timeloop to reason about the total number of computations required for a particular unit of computation.
The performance lookup table is generated before the Timeloop instance is run; this process may take a while if there is a large range of energy and latency values that a particular crossbar array reports. Once generated, this table is re-used for each computation with the same components.
Documentation
In addition to this document and the workflow information, we have a growing set of Sphinx documentation available.
To build the documentation locally, you will need to build the Sphinx documentation in the docs directory.
Workflow
ATHENA is designed to be built and run within a container, as the suite of dependencies are complex. To use ATHENA to estimate performance of a hardware architecture, please refer to the Workflow Guide.
Defining new architectures requires using a combination of primitive components and larger compound components. The Accelergy library and project documentation provides a good and detailed description of the architecture description files. ATHENA specific hardware components are located in the sonos_pim directory This directory contains primitive component and example large-scale component architectures.
Contributing
Feel free to contribute to this project. We welcome any and all contributors to make suggestions, report bugs, or provide enhancements. Any issues should be reported in the github repository issues list. For more information, please contact us through the GitHub issue tracker; we are happy to provide more information, or discuss information about this project.
Building the Docker Image:
Check out this repo:
git clone https://github.com/SandiaLabs/ATHENA/athena.git
git submodule init
git submodule update
Use conda or python3 to create a new virtual environment
```
using conda
conda create --name docker-setup python=3.9 conda activate docker-setup pip install -r requirements.txt
using python3
python3 -m venv docker-setup source docker-setup/bin/activate pip install -r requirements.txt ```
Create the Dockerfile using the setup script:
python docker_setup.py
The options for building are:
--no-user(toggles permissions and does not set a UID or GID)--uid(sets the UID for the user, default sets it to 1000)--gid(sets the GID for the user, default sets it to 1000)--build(if you want the script to build the docker image for you) <!-- ---version_tag(if you want to set the tag to something other than 'latest') -->--docker_loc(Path to the docker exe)
Build the docker image
docker build -t athena:latest .
Run the container
docker run -it --rm athena:latest
For more information about the current state of using ATHENA in the container, see athena_tool\workflow.md
Citing and Papers
We have published the following which gives more detail on the underlying methods of ATHENA. If you use ATHENA in your research, please cite our work using the following metadata:
[2] Plagge, M., John, M., & G Cardwell, S. (2023). ATHENA - Analytical Tool for Heterogeneous Neuromorphic Architectures (Version 1.0.0) [Computer software]. https://github.com/sandialabs/athena/
Code and work released under SAND2023-09755O
Owner
- Name: Sandia National Laboratories
- Login: sandialabs
- Kind: organization
- Location: United States
- Website: https://software.sandia.gov
- Repositories: 123
- Profile: https://github.com/sandialabs
Exceptional service in the national interest.
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: "ATHENA - Analytical Tool for Heterogeneous Neuromorphic Architectures"
authors:
- given-names: Mark
family-names: Plagge
email: mplagge@sandia.gov
affiliation: Sandia National Laboratories
- given-names: McFarland
family-names: John
affiliation: Sandia National Laboratories
- given-names: Suma
name-particle: G
family-names: Cardwell
affiliation: Sandia National Laboratories
message: "If you use this software, please cite our work using these metadata."
version: 1.0.0
url: "https://github.com/sandialabs/athena/"
license: MIT
date-released: 2023-10-16
# preferred-citation:
# title: "ATHENA: Enabling Codesign for Next-Generation AI/ML Architectures"
# type: conference-paper
# authors:
# - given-names: Mark
# family-names: Plagge
# - given-names: Feinberg
# family-names: Ben
# affiliation: Sandia National Laboratories
# - given-names: McFarland
# family-names: John
# affiliation: Sandia National Laboratories
# - given-names: Fred
# family-names: Rothganger
# affiliation: Sandia National Laboratories
# - given-names: Sapan
# family-names: Agarwal
# affiliation: Sandia National Laboratories
# - given-names: Awad
# family-names: Amro
# affiliation: Sandia National Laboratories
# - given-names: Hughes
# family-names: Clayton
# affiliation: Sandia National Laboratories
# - given-names: Suma
# name-particle: G
# family-names: Cardwell
# affiliation: Sandia National Laboratories
# doi: "10.1109/ICRC57508.2022.00016"
# conference:
# name: "2022 IEEE International Conference on Rebooting Computing (ICRC)"
# collection-tite: "2022 IEEE International Conference on Rebooting Computing (ICRC) - December 9-10 2022, Proceedings"
# month: 12
# year: 2022
# start: 13
# end: 23
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 1
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 0.0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- 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
- tanner-andrulis (1)
Pull Request Authors
- markplagge (1)