Application Performance Profiling When to use Intel Graphics Performance Analyzers and Intel VTune Amplifier

Published Date
27 - Jan - 2016
| Last Updated
27 - Jan - 2016
 
Application Performance Profiling When to use Intel Graphics Perf...

I am often asked the question “What is the difference between Intel® Graphics Performance Analyzers and VTune Amplifier?”  It’s a very good question and the answer boils down to use case and workflow.  Both tools are extremely useful and equally important when profiling applications.

Before we jump in and discuss their differences and use cases, let’s do a quick review of each of the tools. 

VTune Amplifier

VTune Amplifier is a trace based analysis tool used for deep analysis of a given program’s runtime.   VTune Amplifier collects a plethora of data ranging from CPU, GPU, bandwidth, threading, and more.   You can use VTune Amplifier’s hotspot analysis to quickly identify the lines of code that are taking the most time.  Many applications today are multi-threaded.  VTune Amplifier offers “Locks and Waits” analysis to quickly find common causes of slow threaded code.  In addition, VTune Amplifier also offers extensive GPU analysis for OpenCL workloads and GPU profiling.   This is an extremely brief summary of some of the tools within VTune Amplifier. Finally, VTune Amplifier provides hardware-based profiling to help analyze your code’s efficient use of the microprocessor. For more detailed information, head on over to VTune Amplifier’s website. 

Intel® Graphics Performance Analyzers (GPA)

Intel GPA is a suite of four analyzers and a graphics monitor.   Each tool is used to profile a different stage of the graphics optimization workflow.  System Analyzer is for live metrics analysis of a remote target.   Platform Analyzer is for analyzing CPU bound graphics applications.  Frame Analyzer for DirectX and Frame Analyzer for OpenGL are for analyzing GPU bound graphics applications.  GPA is designed for graphics analysis, providing a fast way to debug, analyze and optimize games and graphics applications.  For more information about GPA, check out the GPA website.

When do I use each tool?

Since both VTune Amplifier and GPA profile the performance of applications, the questions often arises – “Which one do I use in my situation?”  The answer to this question leads to better understanding the differences between the two tools. 

The simple answer is, if it’s a graphics application, start with Graphics Performance Analyzer and then move to VTune Amplifier if your application ends up being CPU bound.   If your application is not a graphics application, start with VTune Amplifier’s basic hotspot analysis.  Below is a general decision chart to use when profiling a given application for performance. 

If the target application is a GPU bound graphics application, use Frame Analyzer.   If the application is a CPU bound graphics application, start with Platform Analyzer and move on to VTune Amplifier for a deeper dive if needed.   If the application is not a graphics application, VTune Amplifier is the best tool to start with. 

What are the differences?

Both tools are used when profiling a CPU bound graphics application, so what are the differences? GPA is designed primarily for game developers who create complex 3D environments.  Platform Analyzer is used when developers want to quickly make correlations between GPU and CPU frames, view durations and serialization of the DirectX or OpenGL ES render threads, and study the live metrics captured in System Analyzer in more detail.  Platform Analyzer is a GPU centric application, primarily showing CPU data to correlate with GPU data.  VTune Amplifier is used when that developer wants to go deeper and analyze the performance of the code line by line. 

For example, a developer finds that their game is CPU bound with System Analyzer so they capture a trace and proceed to analyze that trace in Platform Analyzer.   While in Platform Analyzer, the developer finds that the render thread is not the issue, but the game business logic is not threaded correctly.   At this point, the developer would use VTune Amplifier’s “lock and wait” analysis to help solve the threading issue.

Knowing when to use each tool is the best way to understand the differences between the tools.  For questions regarding either GPA or VTune Amplifier, head on over to the forums (GPA, VTune Amplifier).  We are always happy to help answer any questions you might have.

For more such intel resources and tools from Intel on Game, please visit the Intel® Game Developer Zone

Source: https://software.intel.com/en-us/articles/application-performance-profiling-when-to-use-intel-graphics-performance-analyzers-and