Tutorials:SynchroTrace Sigil 2015: Difference between revisions

From VLSILab
Jump to navigationJump to search
No edit summary
Line 1: Line 1:
'''Topic Outline'''  
'''Topic Outline'''  


Trace capture & analysis for multi-threaded programs, large design space exploration, and insights from workload profiling (e.g. accelerator design via hw/sw co-design and related architectural decisions).
In this tutorial, we discuss Sigil; a workload profiling toolset that allows architects to explore and investigate sources of performance bottlenecks in current and future systems. Sigil captures platform-independent behavior from workloads which can be used to assist HW/SW partitioning problems and to assist trace-based simulation of multi-threaded workloads on CMPs. This tutorial also presents SynchroTrace, a simulation framework built on top of Sigil to perform trace-based simulation.


'''Synopsis'''
'''Synopsis'''


The [[SynchroTrace]] simulation framework enables exploration of a large design space. It has demonstrated speed and accuracy in aiding uncore designers for cache and network-on-chip design decisions, and is currently being integrated into Gem5 as an official patch.
Current architectures trend towards more cores, including ASIC IPs, general purpose CPUs, and GPUs. Understanding how these cores communicate and interact with each other will be ''critical'' to extracting the most performance and efficiency out of future architectures. To enable this understanding, we believe a set of tools are required to extract information on how cores communicate. Our proposed solution are [http://dpac.ece.drexel.edu/current-research-projects/sigil/ Sigil], a tool to capture platform-independent communication and [[SynchroTrace]], a framework which extends Sigil and adds mechanisms to enable simulation of future systems.
 
In this tutorial we discuss the implementation of our tools to promote confidence in the utility of our tools and we also demonstrate the running of the tools to inform the community of their reliability and applicability.
 
The [http://dpac.ece.drexel.edu/current-research-projects/sigil/ Sigil] tool is written to capture and classify computation operations, communication edges between functions/threads, and intercept synchronization operations in threads; Sigil data give insight into the true costs that exist within a workload. This enables data-driven design decisions and analysis in designing future systems. We discuss how a Shadow memory implementation of Sigil can capture platform-independent data and also briefly discuss how the data can be applied to perform HW/SW partitioning.
 
The [[SynchroTrace]] simulation framework utilizes Sigil's platform-independent traces to quickly explore a design space. Synchronization aware traces and replay of those traces, instead of single-threaded deterministic traces, enables accurate simulation of communication bound architectures.  With the addition of fast trace-driven simulation, SynchroTrace quickly iterates over a large design space and assists with design decisions such as NoC design and memory models. We discuss the intercept mechanism by which the Sigil tool is able to capture synchronization constructs. We will also discuss and demonstrate SynchroTrace's trace capture and simulation mechanisms in detail.


[http://dpac.ece.drexel.edu/current-research-projects/sigil/ Sigil] is our workload profiling toolset that has enabled SynchroTrace. It captures and classifies a workload's computation and communication operations, and intercepts synchronization actions within threads. Sigil has been used for accelerator co-design research by gathering communication edges between functions/threads to provide insight to the ''true'' cost of a workload.  Additionally, its unique ability to create non-deterministic traces in a multithreaded trace is utilized for truly architecture-agnostic simulations.


'''Agenda'''
'''Agenda'''


In this talk we discuss the utility and impact of SynchroTrace and Sigil, and show examples downloading, building, and running the tools, along with analysis of the data produced.
# Overview and welcome
# Sigil; a Communication-aware workload profiling tool
## Capture implementation
## Running Sigil
## HW/SW partitioning process
## Example on running post-processing
# SynchroTrace
## Capturing synchronization in multi-threading
## Sigil's intercept mechanism
## Sigil's Trace format
## Generating traces
## SynchroTrace Replay
## Replaying traces
## Results from paper: Speedy, yet accurate simulation
# Hands-on Sigil
## Downloading and installing Sigil
## Running Sigil and interpreting output
## Running post-processing and parsing
# Hands-on SynchroTrace
## Downloading and installing SynchroTrace
## Running Sigil and interpreting trace generation
## Running Replay and understanding Replay output
# Guest speaker

Revision as of 18:53, 10 August 2015

Topic Outline

In this tutorial, we discuss Sigil; a workload profiling toolset that allows architects to explore and investigate sources of performance bottlenecks in current and future systems. Sigil captures platform-independent behavior from workloads which can be used to assist HW/SW partitioning problems and to assist trace-based simulation of multi-threaded workloads on CMPs. This tutorial also presents SynchroTrace, a simulation framework built on top of Sigil to perform trace-based simulation.

Synopsis

Current architectures trend towards more cores, including ASIC IPs, general purpose CPUs, and GPUs. Understanding how these cores communicate and interact with each other will be critical to extracting the most performance and efficiency out of future architectures. To enable this understanding, we believe a set of tools are required to extract information on how cores communicate. Our proposed solution are Sigil, a tool to capture platform-independent communication and SynchroTrace, a framework which extends Sigil and adds mechanisms to enable simulation of future systems.

In this tutorial we discuss the implementation of our tools to promote confidence in the utility of our tools and we also demonstrate the running of the tools to inform the community of their reliability and applicability.

The Sigil tool is written to capture and classify computation operations, communication edges between functions/threads, and intercept synchronization operations in threads; Sigil data give insight into the true costs that exist within a workload. This enables data-driven design decisions and analysis in designing future systems. We discuss how a Shadow memory implementation of Sigil can capture platform-independent data and also briefly discuss how the data can be applied to perform HW/SW partitioning.

The SynchroTrace simulation framework utilizes Sigil's platform-independent traces to quickly explore a design space. Synchronization aware traces and replay of those traces, instead of single-threaded deterministic traces, enables accurate simulation of communication bound architectures. With the addition of fast trace-driven simulation, SynchroTrace quickly iterates over a large design space and assists with design decisions such as NoC design and memory models. We discuss the intercept mechanism by which the Sigil tool is able to capture synchronization constructs. We will also discuss and demonstrate SynchroTrace's trace capture and simulation mechanisms in detail.


Agenda

  1. Overview and welcome
  2. Sigil; a Communication-aware workload profiling tool
    1. Capture implementation
    2. Running Sigil
    3. HW/SW partitioning process
    4. Example on running post-processing
  3. SynchroTrace
    1. Capturing synchronization in multi-threading
    2. Sigil's intercept mechanism
    3. Sigil's Trace format
    4. Generating traces
    5. SynchroTrace Replay
    6. Replaying traces
    7. Results from paper: Speedy, yet accurate simulation
  4. Hands-on Sigil
    1. Downloading and installing Sigil
    2. Running Sigil and interpreting output
    3. Running post-processing and parsing
  5. Hands-on SynchroTrace
    1. Downloading and installing SynchroTrace
    2. Running Sigil and interpreting trace generation
    3. Running Replay and understanding Replay output
  6. Guest speaker