athena

ATHENA: Analytical tool for measuring heterogeneous neuromorphic hardware

https://github.com/sandialabs/athena

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

scr-2782
Last synced: 6 months ago · JSON representation ·

Repository

ATHENA: Analytical tool for measuring heterogeneous neuromorphic hardware

Basic Info
  • Host: GitHub
  • Owner: sandialabs
  • License: mit
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 10.5 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 1
Topics
scr-2782
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Citation Authors

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:

[1] Plagge, M., Feinberg, B., McFarland, J., Rothganger, F., Agarwal, S., Awad, A., Hughes, C., and Cardwell, S.G.: "ATHENA: Enabling Codesign for Next-Generation AI/ML Architectures." In 2022 IEEE International Conference on Rebooting Computing (ICRC), pp. 13-23. IEEE, 2022.

[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

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)
Top Labels
Issue Labels
Pull Request Labels