Skip to content

Timeloop performs modeling, mapping and code-generation for tensor algebra workloads on various accelerator architectures.

License

Notifications You must be signed in to change notification settings

NVlabs/timeloop

Repository files navigation

Timeloop

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

Documentation

Timeloop documentation is hosted at https://timeloop.csail.mit.edu/. The guides there cover installation, usage and examples. For a deeper understanding of Timeloop's internals please read our 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 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 on various accelerator architectures.

Resources

License

Stars

Watchers

Forks