Input Formats

Both timeloop-model and timeloop-mapper take inputs in the form of a YAML file with specific top-level keys. These top-level keys may be included in one or more files (one or more top-level keys per file) that are concatenated together by the tool.

Some keys are used only for one of the programs or are optional. So a skeleton input with the top-level keys for a run of timeloop-mapper would look like:

problem:
    ...

architecture:
    ...

sparse_optimizations:
    ...

contraints:
   ....

mapper:
   ....

Each top-level key is described in its own section:

  • Problem - The tensor computation to be performed
  • Design - Not actually a key itself, but a collection of three keys that collectively describe the design
    • Architecture - A hierarchical specification of the hardware architecture
    • Sparse Optimizations - A specification of the optimizations designed to exploit sparsity (optional)
    • Constraints - Constraints on legal mappings (optional)

Additionally, timeloop-model needs the following input:

  • Mapping - A mapping of the problem on to the hardware

Timeloop-mapper needs the following additional input:

  • Mapper - Directives to control the behavior of the mapping search