• Stars
    star
    114
  • Rank 308,031 (Top 7 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PET: Optimizing Tensor Programs with Partially Equivalent Transformations and Automated Corrections

PET: Optimizing Tensor Programs with Partially Equivalent Transformations and Automated Corrections

PET is the first DNN framework that optimizes tensor programs with partially equivalent transformations and automated corrections. PET discovers and applies program transformations that improve computation efficiency but only maintain partial functional equivalence. PET then automatically corrects results to restore full equivalence. We develop rigorous theoretical foundations to simplify equivalence examination and correction for partially equivalent transformations, and design an efficient search algorithm to quickly discover highly optimized programs by combining fully and partially equivalent optimizations at the tensor, operator, and graph levels. Our evaluation shows that PET outperforms existing systems by up to 2.5x, by unlocking previously missed opportunities from partially equivalent transformations.

End-to-end performance comparison
Figure 1: End-to-end performance comparison between PET and existing frameworks. For each DNN, the numbers above the PET bars show the speedups over the best baseline. TASO does not support the 3D convolution operators in Resnet3D-18.

Install PET

See README.pdf A.4 to install PET from source.

Publication

Wang, Haojie, Jidong Zhai, Mingyu Gao, Zixuan Ma, Shizhi Tang, Liyan Zheng, Yuanzhi Li, Kaiyuan Rong, Yuanyong Chen, and Zhihao Jia. "PET: Optimizing Tensor Programs with Partially Equivalent Transformations and Automated Corrections." In 15th USENIX Symposium on Operating Systems Design and Implementation (OSDI 21), pp. 37-54. 2021.

Contributors

Currently PET is maintained in a private repository. Updates will be synchronized to this repository periodically. Contributors of PET are listed as follows.

Contributors

More Repositories

1

GeminiGraph

A computation-centric distributed graph processing system.
C++
310
star
2

GridGraph

Out-of-core graph processing on a single machine.
C++
128
star
3

TriCache

A User-Transparent Block Cache Enabling High-Performance Out-of-Core Processing with In-Memory Programs
C++
74
star
4

FasterMoE

Python
65
star
5

gscholar-citations-crawler

Crawl all your citations from Google Scholar
Python
54
star
6

LiveGraph

LiveGraph: a transactional graph storage system with purely sequential adjacency list scans
C++
51
star
7

HyQuas

A hybrid partitioner based quantum circuit simulation system on GPU
C++
46
star
8

SmartMoE-AE

ATC23 AE
Python
42
star
9

GraphPi

C++
36
star
10

RisGraph

RisGraph: A Real-Time Streaming System for Evolving Graphs to Support Sub-millisecond Per-update Analysis at Millions Ops/s
C++
34
star
11

Spindle

C++
31
star
12

lab-guide

Everything about PACMAN!
11
star
13

VAPRO

Light-weight Performance Variance Detection for Production-run Parallel Applications
C
10
star
14

self-checkpoint

An in-memory checkpoint method using less space.
C
6
star
15

AIPerf

Python
6
star
16

mpi-profiler

A simple and easy-to-use profiler for MPI programs. It profiles CPU time and MPI time for each process. No source code modification is need, just re-link the program with this library.
C
5
star
17

LiveGraph-Binary

LiveGraph: a transactional graph storage system with purely sequential adjacency list scans
C++
4
star
18

CYPRESS

CYPRESS: Combining Static and Dynamic Analysis for Top-Down Communication Trace Compression
C
3
star
19

AIPerf-MoE

MoE Model Benchmark of AIPerf
Python
3
star
20

Mat2Stencil

A Modular Matrix-Based DSL for Explicit and Implicit Matrix-Free PDE Solvers on Structured Grid.
2
star
21

tprint

tprint is a printing library specially designed for SW architecture. Currently providing C and fortran API.
C
2
star