Skip to content

Timeloop performs modeling, mapping and code-generation for Tensor Algebra workloads running on Explicitly-Decoupled Data Orchestration (EDDO) architectures.

License

Notifications You must be signed in to change notification settings

ehw-fit/timeloop-with-quantization

 
 

Repository files navigation

Timeloop (with quantization)

About

Timeloop is an infrastructure that aims to provide modeling, mapping and code-generation for dense- and sparse- tensor algebra workloads on a range of accelerator architectures. It is built from two modular components:

  • A fast analytical model that can emulate a range of architecture designs and provide performance and energy projections
  • A mapper that that searches for an optimal mapping in the space of mappings of a tensor-algebra problem on a given architecture

Fork additions

Additions to account for specifying different workload tensors bitwidths during the mapping evaluation using bit-packing technique to reduce memory footprint.

To account for the use of different bitwidths, you need to specify them inside the workload's YAML specification.

Simply specify the following under the instance key according to your desire (NOTE: the bitwidth must be able to fit in HW's word size):

bitwidths:
      Inputs: X
      Outputs: X
      Weights: X

For example:

problem:
  instance:
    C: 3
    Hdilation: 1
    Hstride: 2
    M: 32
    N: 1
    P: 112
    Q: 112
    R: 3
    S: 3
    Wdilation: 1
    Wstride: 2
    bitwidths:
      Inputs: 8
      Outputs: 8
      Weights: 2
  shape:
    ...

Documentation

Timeloop documentation is hosted at https://timeloop.csail.mit.edu/timeloop. The guides there cover installation, usage and examples. For a deeper understanding of Timeloop's internals please read the original ISPASS 2019 paper.

Timeloop version 2.0 (a.k.a. Sparseloop) provides stochastic modeling of compressed-sparse tensor algebra. This work is described in our MICRO 2022 paper.

Timeloop version 3.0 (a.k.a. Ruby) adds support for imperfectly-factorized mappings (described in our ISPASS 2022 paper), in addition to support for spatial skews and flattened mappings.

Tutorial

New users are strongly encouraged to complete the original Timeloop tutorial. Serially walking through the exercises from the tutorial serves as an essential hands-on introduction to the tool.

Dependencies

Timeloop depends on the isl and barvinok libraries. In particular, barvinok version 0.41.6 (along with the pre-packaged isl library) has been tested to build successfully with this version of Timeloop. Instructions for installing barvinok can be found in the this link.

About

Timeloop performs modeling, mapping and code-generation for Tensor Algebra workloads running on Explicitly-Decoupled Data Orchestration (EDDO) architectures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.0%
  • Python 3.8%
  • Shell 0.2%