Tutorials:SynchroTrace Sigil 2015
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.
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.
- Overview and welcome
- Sigil; a Communication-aware workload profiling tool
- Capture implementation
- Running Sigil
- HW/SW partitioning process
- Example on running post-processing
- 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