Input Specifications#

The Spec class is the main class that contains all inputs to this framework. It includes the following:

  • arch: The hardware architecture being used.

  • config: Configuration settings.

  • mapper: Configures the mapper used to map the workload onto the architecture.

  • mapping: How the workload is programmed onto the architecture. Do not specify this if you’d like the mapper to generate a mapping for you.

  • model: Configures the model used to evaluate mappings.

  • renames: Aliases for tensors in the workload so that they can be called by canonical names when writing architecture constraints. For example, workload tensors may be renamed to “input”, “output”, and “weight”.

  • variables: Variables that can be referenced in other places in the spec.

  • workload: The program to be run on the arch.

Some of the Spec’s inputs are described in the following sections:

Additionally, the FFM class is used to configure the mapper through the mapper attribute. Its usage is described in Mapping with Fast & Fusiest.

Input Parsing#

Input specifications can include expressions that are evaluated. The evaluation is described in the following:

Additionally, inputs can be specified with YAML files using an extend YAML syntax, which is described in the following: