Git Product home page Git Product logo

tenet's Introduction

TENET: A Framework for Modeling Tensor Dataflow Based on Relation-centric Notation

TENET is an analytical framework that models hardware dataflow of tensor applications on spatial architectures. By using the relation-centric notation to represent dataflow, interconnection and tensor operations uniformly, TENET support a wide range of dataflows and enables specification of spatial architecture interconnection. TENET also provide analysis for critical performance metrics, such as data reuse, PE utilization, latency and energy.

What is Relation-centric Notation?

Matmul Example

As shown in Figure above, the relation-centric notation use integer relations to uniformly represent dataflow, interconnection and tensor operations. The dataflow assigns a multi-dimensional time-stamp to each instance specifying its execution order, and a multi-dimensional space-stamp to each instance specifying its execution place (PE coordinates). The interconnection specifies which PE are connected by network-on-chip. We currently support several interconnections including 1D systolic, 2D systolic and mesh structure. The Tensor operation specifies the iteration domain and access function.

Requirements

TENET leverage the Integer Set Library and the Barvinok Library to perform metrics analysis. To install required libraries, run our prepared script file init.sh. (You can also follow the instructions here, but make sure to set [project_path]/external/ as install location.

Project Structure

The header and source files of TENET core framework are located in include/ and src/, respectively.
Experiment data of our paper is located in data/.
Experiment codes are located in test/.

Installation

To install TENET, use the following command:

  1. Setup dependencies optional
    (skip this step if you follow instructions by scratch.)
./init.sh
  1. Build TENET
make clean
make all \
MAIN=[entry file name] #the file should be placed under test/ directory \
TARGET=[target executable]
LIB_DIR=[library directory]
INCLUDE_DIR=[include directory]

After the build, the object files are stored in build/, while target executables in bin.

bin/[executable]

Example

commands below reproduce AlexNet reuse factor experiment of our paper.

make clean
make all MAIN=main.cpp TARGET=alexnet
bin/alexnet

Papers

If you find this project useful in your research, please cite our paper that has been recently accepted to ISCA 2021:

@inproceedings{lu2021tenet,
  title={TENET: A Framework for Modeling Tensor Dataflow Based on Relation-centric Notation},
  author={Lu, Liqiang and Guan, Naiqing and Wang, Yuyue and Jia, Liancheng and Luo, Zizhang and Yin, Jieming and Cong, Jason and Liang, Yun},
  booktitle={2021 ACM/IEEE 48rd Annual International Symposium on Computer Architecture (ISCA)},
  year={2021}
}

tenet's People

Contributors

479-tenet avatar semiwaker avatar wangyuyue avatar

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.