Plugins

Accelergy can interact with multiple energy estimation plug-ins. Each estimation plug-in is capable of estimating the energy consumption and area cost for (a subset) of the primitive components in Accelergy’s primitive component library. This feature allows Accelergy to provide estimations for many technologies, including conventional CMOS technologies, emerging techonologies such as resistive memory, etc. Estimation plug-ins must adhere to the estimation plug-in interface defined by Accelergy.

Default plug-ins

We provide several default plug-ins that are capable of providing energy/area estimations for popular primitive components.

  • CACTI plug-in (installed by default installation instructions)
    • SRAM component with various aspect ratioes, sizes, and technologies.
    • DRAM with different types, e.g., LPDDR4, HBM3
  • Aladdin plug-in (installed by default installation instructions)
    • Only capable of estimating components based on 40nm technology
    • Small register files of various sizes
    • Various datapath components, such as intadder, fpadder, etc.
  • McPAT plug-in (NOT installed by default installation instructions, installation instructions in repo)
    • Capable of estimating various CPU components, cache, load_store_queue, reorder_buffer, etc.

Entry Point/Template for user-defined plug-ins

Accelergy can also communicate with user-defined estimation plug-ins. To facilitate that, we provide two entry point/template for easy integration.

We only include high-level descriptions of the usage here, please refer to each repo for more detailed instructions on how to install and plug your own data into these templates.

  • Table-based plug-in (installed by default installation instructions)

    • Provides an entry point for easy integration of user-defined energy/area estimation tables stored csv files, e.g., SRAM.csv.
    • Each csv file's name must be identical to the primitive component class that it captures.
    • First row in each csv files list the attribute names and action names.
    • Second row and onwards record the corresponding attribute values and the energy/area estimations for the component defined by the attribute values.
  • Plug-in Template (NOT installed by default installation instructions, installation instructions in repo)

    • Provides a template with all necessary interface function calls.
    • By filling in the function calls, users are able to construct a more complex plug-in that captures much more information than plain csv tables.