Intel® Software Tuning Agent

Download.gifWhat 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.

ISTA-Fig1.png

Figure 2.

ISTA-Fig2.png

    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 http://www.jfree.org/
    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.

       

      For more complete information about compiler optimizations, see our Optimization Notice.

      8 comments

      Top
      anonymous's picture

      Hello,

      when running the MAGIX - PC Check-Programm three days ago, suddenly a 2-inch square with a red button an an OK-bar appeared in the middle of my screen, titled "TuningAgent". It could not be removed by OK or otherwise, I had to restart my computer.
      I am on my way to inform Avast that they will have a problem, too.
      Can you help ?? (I am 71 !)
      Regards
      Dieter Steinmann

      Chuck Yount (Intel)'s picture

      Notice: Intel(R) STA does not work with the latest version of Intel(R) PTU, version 4.0. To use Intel STA, please download and install PTU version 3.2 from http://software.intel.com/en-us/articles/download-intel-performance-tuning-utility-32-update-1/. Then, you should be able to install and run Intel STA successfully.

      Be sure to modify IntelSTA.bat to point to the PTU directory containing version 3.2. The directory name in the PTU zip file is ptu32_001_win_intel64. So, if you unzip it to C:, modify line 5 of IntelSTA.bat to read as follows:

      set INTEL_PTU_BIN=C:ptu32_001_win_intel64bin

      Matthias H. (Intel)'s picture

      Thanks,

      I probably wasn't clear - I was referring to the link mentioned in your description:

      5. Where can I get the source for Intel® STA?
      a.The source for Intel® STA is located on the Intel® STA download page and the source for JFreeChart and JCommon can be found at http://www.jfree.org/

      Lexi S. (Intel)'s picture

      Hi, Matthias - make sure you have popups enabled for the intel.com site. We just tested and the download worked for us.

      Matthias H. (Intel)'s picture

      the mentioned STA download page doesn't seem to work any more

      Chuck Yount (Intel)'s picture

      We have received some questions about what one should expect to see in the "Other" part of the contribution breakdown. In short, the "Other" category includes everything not statistically attributed to the listed events. This will include the minimum time required to execute each instruction. The product of the percentage due to "Other" (divided by 100) and the overall CPI is usually around 0.25-0.50. (It's 0.33 in the example chart shown in the Product Overview section.) If the value is much larger, consider adding more events per the instructions in the User's Guide or try turning on the experimental contribution calculator in the Advanced Options window.

      anonymous's picture

      THANKS FOR THE INFI&HELP

      Dmitry Vyukov's picture

      Wow! Contribution to Cycle Count graph looks cool. That's probably the thing every developer tries to figure out first when do optimization.

      Add a Comment

      Have a technical question? Visit our forums. Have site or software product issues? Contact support.