Code Monkey home page Code Monkey logo

sst-elements-with-stonne's Introduction

SST SST

Structural Simulation Toolkit (SST)

Copyright (c) 2009-2021, National Technology and Engineering Solutions of Sandia, LLC (NTESS)

Portions are copyright of other developers: See the file CONTRIBUTORS.TXT in the top level directory of this repository for more information.


The Structural Simulation Toolkit (SST) was developed to explore innovations in highly concurrent systems where the ISA, microarchitecture, and memory interact with the programming model and communications system. The package provides two novel capabilities. The first is a fully modular design that enables extensive exploration of an individual system parameter without the need for intrusive changes to the simulator. The second is a parallel simulation environment based on MPI. This provides a high level of performance and the ability to look at large systems. The framework has been successfully used to model concepts ranging from processing in memory to conventional processors connected by conventional network interfaces and running MPI.

Visit sst-simulator.org to learn more about SST.

See Contributing to learn how to contribute to SST.

STONNE Simulator


STONNE is a cycle-level microarchitectural simulator for flexible DNN inference accelerators. STONNE models all the major components required to build both first-generation rigid accelerators and next-generation flexible DNN accelerators. All the on-chip components are interconnected by using a three-tier network fabric composed of a Distribution Network(DN), a Multiplier Network (MN), and a Reduce Network(RN), inspired by the taxonomy of on-chip communication flows within DNN accelerators. These networks canbe configured to support any topology. Next, we describe the different topologies of the three networks (DN, MN and RN) currently supported in STONNE that are basic building blocks of state-of-the-art accelerators such as the Google’s TPU, Eyeriss-v2, ShDianNao, SCNN, MAERI and SIGMA, among others. These building blocks can also be seen in the figure presented below:

alt text

Visit stonne to learn more about STONNE Simulator.


SST-STONNE simulator

STONNE has been integrated as a component called sstStonne in SST. sstStonne connects to memHierarchy component to faithfully model the memory hierarchy of the accelerator. A schematic view of sstStonne is presented below:

alt text

How to install sstStonne

Please install sst-elements-with-stonne following the installation description presented in sst-simulator.org.

How to run sstStonne

sstStonne must be instanstiated in the SST Configuration file, along with the memory hierarchy components and subcomponents that will be used to model the memory hierarchy. Please refer to our examples for further information:

  • sst configuration file to run a convolution operation: tests/sst_stonne_conv.py
  • sst configuration file to run a dense GEMM operation: tests/sst_stonne_gemm.py
  • sst configuration file to run a sparse-sparse GEMM operation where the matrices are encoded using a bitmat format: tests/sst_stonne_bitmapSpMSpM.py
  • sst configuration file to run a sparse-dense GEMM operation where the sparse matrix is encoded using a CSR format: tests/sst_stonne_csrSpMM.py

Also, refer to our scripts to generate the memory initialization files and calculate the memory address locations:

  • Script for convolution operation: tests/gen_conv.py
  • Script for dense GEMM operation: tests/gen_gemm.py
  • Script for sparse-sparse GEMM operation where the matrices are encoded using a bitmat format: tests/gen_bitmapSpMSpM.py

Please remember to update the SST configuration file with the proper memory address locations and the proper memory intialization file for each kernel to be launched.

Tutorials

Docker Image

We have created a docker image for SST-STONNE for the purpose of ASPLOS tutorial! This is the most stable version. Everything is installed in the image so using the simulator is much easier. Just type the next docker command to download and run the image:

Use of docker is highly recommended since SST takes time to build.

docker run -it stonnesimulator/stonne-simulators

ASPLOS 2023

SST-STONNE was presented at ASPLOS 2023 STONNE Tutorial.

For demo and more details on SST-STONNE, please refer to this video

Citations

Please if you use sstStonne component cite us:

@INPROCEEDINGS{STONNE21,
  author =       {Francisco Mu{\~n}oz-Matr{\'i}nez and Jos{\'e} L. Abell{\'a}n and Manuel E. Acacio and Tushar Krishna},
  title =        {STONNE: Enabling Cycle-Level Microarchitectural Simulation for DNN Inference Accelerators},
  booktitle =    {2021 IEEE International Symposium on Workload Characterization (IISWC)}, 
  year =         {2021},
  volume =       {},
  number =       {},
  pages =        {},
}

sst-elements-with-stonne's People

Contributors

allevin avatar dogquixote avatar feldergast avatar fkaplan3 avatar francisco-munoz avatar gvoskuilen avatar h4u5 avatar hughes-c avatar jaganh avatar jeacook avatar jleidel avatar jonas25007 avatar jpvandy avatar jwang323 avatar jwilso avatar mjleven avatar mrasquinha avatar nmhamster avatar otuncer avatar scogginsnl avatar seokinhong avatar shavvn avatar sst-autotester avatar stackmachinesa avatar stkaplan avatar stonne-simulator avatar tkarkha avatar vamseereddyk avatar vjleung avatar zhangyjbu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

chaogaoucr

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.