james_reinders
Software Programmer

Easy on the Eyes: Free and Effective Graphic Performance Analysis

opinion
Mar 21, 20174 mins

istock 497640817
Credit: istock

Imperfect or slow graphics really jump out – game developers and others work hard to eliminate them. Imperfections aren’t just annoying; they detract from the overall user experience. Anything slow simply begs us to find more performance.

reinders reinders

The challenge is finding the source of the imperfections – often slight stalls in the rendering or playback are very hard to isolate. Even if almost all frames are rendered perfectly, the frames that aren’t can jump out as noticeable and disturbing.

Finding opportunities for more performance takes some digging around. Knowing what your system is really doing is key. Luckily I can point to a few free tools that are sophisticated enough to make a difference.

There is a collection of tools from Intel (to help develop Windows, Android, and Ubuntu applications on Windows/Ubuntu/MacOS development platforms) that has developed a dedicated following in the past 6+ years. They’re called the “Intel Graphics Performance Analyzers.”

The tools work by intercepting graphics APIs and using hardware and software metrics, so we can understand what is happening as our applications render video. The aim of the analysis is to quickly identify problem areas and experiment with improvements without having to recompile source code.

These tools complement the premier tuning tool from Intel known as the Intel VTune Amplifier. VTune excels at digging into tuning computational- and bandwidth-intensive programs including those found in high performance computing (HPC), technical applications, and game engines. Unlike VTune, the Graphics Performance Analyzers focus on making connections to the DirectX and OpenGL usage of an application. When we’re developing a DirectX or OpenGL application, the Graphics Performance Analyzers will be our first tool of choice, using VTune when deeper digging is needed. The “Frame API” in VTune offers some timing capabilities that can help with game developers and high frequency traders alike. For optimization of applications not using DirectX or OpenGL, then VTune is the right choice.

There are four analyzers in the “Graphics Performance Analyzers” collection:

System Analyzer to isolate bottlenecks that affect performance of an application (e.g., a game) in real time. This tool pulls metrics from the CPU, GPU, graphics APIs, and power metrics in real time to allow amazing exploration of an application’s behavior. Frames, or traces, can be captured for more detailed analysis with the Graphics Frame Analyzer or the Platform Analyzer, respectively.

Graphics Frame Analyzer to analyze performance on a single frame down to the draw call level. This tool excels at exploring key metrics at the DirectX or OpenGL API call level.

Platform Analyzer to help measure the workload distribution across processor cores and the GPU in order to help with the tuning of such balancing. This tool excels at helping explore key metrics from both the CPU and GPU.

Graphics Trace Analyzer to capture and analyze detailed event traces. This is the newest addition to the collection, and it rests upon an open source core, created by Intel, called Intel “SEAPI” (Single Event API).

Intel has some nice pages with graphics to give a detailed idea of what the tools can do (which are worth a look before you decide what to download). These are quick overviews on “getting started” that show more capabilities:

o For DirectX based applications:     Analyzing DirectX Applications on a Windows System o For Android applications using OpenGL:     Analyzing Android OpenGL ES Applications from a Windows Host     Analyzing Android OpenGL ES Applications from an OS X Host     Analyzing Android OpenGL ES Applications from an Ubuntu Host o For applications using OpenGL on Ubuntu:     Analyzing Desktop OpenGL Application from on Ubuntu System

These are high-quality tools. (And did I mention they’re free?) They can really shine a bright light into the corners of a graphically intense program to help us tune our applications. The results can be easier on the eyes for our users, and much more satisfying for all of us.

2 Intel

System-level analysis, screenshot courtesy of Intel

3 Intel

Frame-level analysis, screenshot courtesy of Intel

Resources to learn more:

Click here to download your free 30-day trial of Intel Parallel Studio XE

 

james_reinders
Software Programmer

James Reinders is a software programmer with a passion for Parallel Programming and Parallel Computer Architecture. He has contributed to the development of some of the world’s fastest computers, and the software tools that make that performance accessible for programmers. James has shared this passion in classes, webinars, articles and has authored eight books for software developers. James enjoyed 10,001 days working at Intel, and now continues to share his passion to help others “Think Parallel.”

More from this author