All Projects â†’ pku-liang â†’ TENET

pku-liang / TENET

Licence: MIT license
An analytical framework that models hardware dataflow of tensor applications on spatial architectures using the relation-centric notation.

Programming Languages

C++
36643 projects - #6 most used programming language
assembly
5116 projects
Mathematica
289 projects
OpenEdge ABL
179 projects
shell
77523 projects
matlab
3953 projects
Makefile
30231 projects

Projects that are alternatives of or similar to TENET

Pikvm
Open and cheap DIY IP-KVM based on Raspberry Pi
Stars: ✭ 3,950 (+7352.83%)
Mutual labels:  hardware
diy-synths
List of open-source synths 🎹
Stars: ✭ 56 (+5.66%)
Mutual labels:  hardware
dashcam-rs
Prototype car dashboard camera developed using embedded Rust.
Stars: ✭ 28 (-47.17%)
Mutual labels:  hardware
Axi
AXI SystemVerilog synthesizable IP modules and verification infrastructure for high-performance on-chip communication
Stars: ✭ 227 (+328.3%)
Mutual labels:  hardware
awesome-hwd-tools
A curated list of awesome open source hardware design tools
Stars: ✭ 42 (-20.75%)
Mutual labels:  hardware
audio-digitization-toolkit
A list of resources for setting up an audio digitization workflow
Stars: ✭ 13 (-75.47%)
Mutual labels:  hardware
Lost Nds Tv
The Lost Nintendo DS Television Output, brought back to life
Stars: ✭ 221 (+316.98%)
Mutual labels:  hardware
PsxNewLib
Playstation controller interface library for Arduino
Stars: ✭ 81 (+52.83%)
Mutual labels:  hardware
basic-ecp5-pcb
Reference design for Lattice ECP5 FPGA. Featuring Raspberry Pi interface and 6 PMODs
Stars: ✭ 71 (+33.96%)
Mutual labels:  hardware
Hardware.Info
Battery, BIOS, CPU - processor, storage drive, keyboard, RAM - memory, monitor, motherboard, mouse, NIC - network adapter, printer, sound card - audio card, graphics card - video card. Hardware.Info is a .NET Standard 2.0 library and uses WMI on Windows, /dev, /proc, /sys on Linux and sysctl, system_profiler on macOS.
Stars: ✭ 238 (+349.06%)
Mutual labels:  hardware
Thinkfan
The minimalist fan control program
Stars: ✭ 237 (+347.17%)
Mutual labels:  hardware
Node Wifi
đŸ“ļ NodeJS tool to manage wifi (connections, scans)
Stars: ✭ 250 (+371.7%)
Mutual labels:  hardware
arduino-midi-footswitch
USB MIDI Pedal built with Arduino
Stars: ✭ 24 (-54.72%)
Mutual labels:  hardware
Unimidi
Realtime MIDI IO for Ruby
Stars: ✭ 229 (+332.08%)
Mutual labels:  hardware
me
莰åŊ•å’Œåˆ†äēĢ技术įš„博åŽĸ
Stars: ✭ 17 (-67.92%)
Mutual labels:  hardware
Hastlayer Sdk
Turning .NET assemblies into FPGA hardware for faster execution and lower power usage. See the Readme and https://hastlayer.com.
Stars: ✭ 226 (+326.42%)
Mutual labels:  hardware
AXIOM-Remote
A device to control AXIOM cameras.
Stars: ✭ 24 (-54.72%)
Mutual labels:  hardware
3d printed keyboard
A fully 3D printed computer keyboard
Stars: ✭ 31 (-41.51%)
Mutual labels:  hardware
cyclops
Precision current source, with optional optical feedback, for driving LEDs and laser diodes
Stars: ✭ 38 (-28.3%)
Mutual labels:  hardware
SDR Matlab LTE
📡 Using Software Designed Radio to transmit LTE downlink signals at 2.4 GHz
Stars: ✭ 21 (-60.38%)
Mutual labels:  hardware

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 48th Annual International Symposium on Computer Architecture (ISCA)},
  year={2021}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].