Intel® Software Tuning Agent

Download.gif What If Home | Product Overview | Technical Requirements | FAQ | Primary Technology Contacts | Blogs | Discussion Forum


Product Overview

Intel® Software Tuning Agent (Intel® STA) is a Java program that assists in the performance analysis and optimization of software applications written for Intel® Architecture.  It is provided free of charge as open source software.

Intel® STA assists in the micro-architectural tuning of software applications by identifying and prioritizing performance events by order of their contribution to execution cycles. The tool also helps locate the functions where the most potential performance improvement due to stall events exists.

Intel® STA is based upon research initially sponsored by Intel’s Software and Services Group starting in 2006. This research studied the application of Machine Learning (Statistical Inference) to the micro-architecture performance of workloads. The results of the work showed that regression methods can be applied to PMU (Performance Monitoring Unit) data from workloads to infer accurate, interpretable performance models.

In particular it was demonstrated that the M5’ algorithm can infer a model of performance that can be used to estimate and rank the cycle contributions of performance events. These ranked contributions can be used to direct the performance tuning effort.

M5’ allows the tool to produce a number of tables and diagrams that explain the impact of different performance events on cycles-per-instruction (CPI). These give the performance analyst insight into the behavior of a workload on a particular micro-architecture.  Below are two examples of the tool’s output.

The first figure is an example of Intel® STA’s Summary panel.  This panel displays a pie chart and a table of event contributions for the workload. The first column of the table displays the abbreviated event name. The second column displays the percentage of clock cycles for the workload attributable to the corresponding event. The third column gives the full event name for the particular event.  These values are estimates; consider the ranking and relative sizes of the contributions, not the exact values.  The pie chart shows these values graphically.

The second figure is an example of Intel® STA’s Temporal View panel.  This panel displays two charts: the top one displays how contributions change over time, and the bottom one displays how the raw event counts change over time.

Figure 1.


Figure 2.


    Technical Requirements

    Intel® STA is supported on Windows® for Intel® Core™ processor families.  It requires the Java™ Runtime Environment (JRE) version 6 or later.  It also requires Intel® PTU and Intel® VTune™.   It works on non-managed run-time code.  Please see the Intel® STA installation instructions in the Intel® STA distribution.

    Frequently Asked Questions

    1. How do I ask questions, make comments and get support for Intel® STA?
      1. Please ask questions, make comments and join the discussion about Intel® STA in the Intel® Software Tuning Agent Forum.
    2. Do I really need to install Intel® VTune™?
      1. Yes, Intel® STA uses some of the tools in the Intel® VTune™ installation.
    3. Do I really need to install Intel® PTU?
      1. Yes, Intel® STA uses some of the tools in the Intel® PTU installation.
    4. Does Intel® STA support my CPU?
      1. Intel® STA supports any CPU that is supported by Intel® PTU and Intel® VTune™, but you may have to create a file with a list of events if one for your CPU is not shipped with Intel® STA.  See the User’s Guide for instructions on making an event list.
    5. Where can I get the source for Intel® STA?
      1. The source for Intel® STA is located on the Intel® STA download page and the source for JFreeChart and JCommon can be found at
    6. How does the algorithm in Intel® STA work?
      1. Intel® STA is founded upon original research at Intel.  This research, which investigates the applicability of machine learning to micro-architectural performance analysis can be found in these papers:
        1. Using Model Trees for Computer Architecture Performance Analysis of Software Applications
        2. Characterization of SPEC CPU2006 and SPEC OMP2001: Regression Models and their Transferability
        3. On the Comparison of Regression Algorithms for Computer Architecture Performance Analysis of Software Applications
        4. The Software Tuning Agent: A Tool for Workload Characterization and Microarchitecture Studies

      Primary Technology Contacts

      Jim Woodlee is an engineer in Intel’s Software and Services Group.  He specializes in software and micro-architecture performance analysis and optimization with an emphasis on the application of statistical inference and AI.  He has a Master’s degree in Computer Science from the California State University.

      Chuck Yount is an engineer in Intel’s Software and Services Group.  He specializes in pre-silicon tracing and simulation; and in software and micro-architecture performance analysis.  Chuck has a PhD in Computer Engineering from CMU.

      Moustapha Ould-Ahmed-Vall is an engineer in Intel’s Software and Services Group.  He has specialties in machine learning applied to performance analysis, instruction set architecture and sensor networks.  Moustapha has a PhD in ECE from Georgia Tech University.


      Einzelheiten zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.