A top-down approach to analysis and optimization suggests that first you have to determine whether your performance issues are with the CPU or the GPU. Understanding your performance issues at this highest level is extremely important. Otherwise, you could spend a lot of time optimizing parts of your game that end up being secondary to much larger performance issues.

TIP

A good rule is to have a balance between the utilization of the CPU and the GPU resources – do not have the CPU running at 100% while the GPU is only 20% utilized, and vice versa.

To find out whether your application is CPU-bound or GPU-bound, you can use System Analyzer HUD or System Analyzer running in a host/target mode.

System Analyzer vs System Analyzer Heads-up Display (HUD)

System Analyzer HUD works in the background while your game is running and displays its results as an overlay on your game, quickly allowing you to see the performance overview of your game and experiment with your game using keyboard shortcuts.

In general, System Analyzer offers the following advantages over the System Analyzer HUD:

  • Uses host/target (network) mode, enabling you to monitor performance on a remote system and reduces performance impact on the application. You are recommended to use System Analyzer in the network mode to analyze graphics applications on Ultrabook™ devices, tablets, netbooks, or other devices with limited resources.
  • Provides more detailed metrics resolution and the possibility to view more than four metrics at the same time. Using System Analyzer, you can compare up to four metrics by displaying them in the same chart, easily switch between metrics, and resize metrics charts for better analysis.

If you connect the System Analyzer to the application with the System Analyzer HUD enabled, the HUD is switched to the lightweight mode that only shows FPS rate.

NOTE

Some games and applications trap all keystrokes, so keyboard shortcuts within the Intel® GPA do not work. In this case, to create frame/trace capture files you can:

  • Use Capture Frame/Capture Trace buttons of the System Analyzer.

  • Set up a trigger in the Graphics Monitor to automatically create frame/trace capture files when certain conditions occur, for example when FPS is 20.

System Analysis Workflow

To understand whether your application is CPU-bound or GPU-bound, follow this typical workflow:

1.

Start your game from within the Graphics Monitor

Double-click the Graphics Monitor icon in the taskbar notification area, and then select the application to run in the Graphics Monitor Launcher screen. This runs your game with the System Analyzer HUD, quickly allowing you to analyze the performance data, experiment with override modes, and capture frame and trace files.

2.

(Optional) Launch the System Analyzer

Launch the System Analyzer and connect it to the running application to analyze the performance and capture frame/trace files. You can choose between local and network usage modes.

NOTE

It is recommended that you use System Analyzer in the network mode to analyze graphics applications on Ultrabook™ devices, tablets, netbooks, or other devices with limited resources.

3.

Analyze metrics data

Intel® GPA supports a wide variety of metrics. The metrics available for display might differ depending on your specific graphics device.

4.

Perform "what if" experiments (also known as overrides) to help identify various bottlenecks without changing the source code

Override modes operate behind the scenes within the graphics driver to modify one or more of the render states of the graphics pipeline to show the effect of that phase on the rendering process, without requiring any code changes in your game.

If using a certain override mode improves performance significantly, then that overridden mode might be a performance bottleneck, and warrants further analysis.

For example, use the Null Hardware override (only available on devices with Intel® Processor Graphics) to simulate an infinitely fast GPU to see whether your game is GPU-bound.

Next Steps

If all went well, you met your performance and playability goals by using the System Analyzer HUD/System Analyzer to identify and resolve issues with your game.

If you still have not met your overall objectives, you can try the following:

  • If you suspect that your game is GPU-bound, capture frame files and use the Graphics Frame Analyzer to perform a deeper analysis into exactly what is happening within a specific frame – see where in the rendering pipeline your game is spending its time, down to the render target or draw call level of detail. Check Frame Analysis for Desktop API Graphics Applications.
  • If you suspect that there are issues in balancing your workloads across the CPU and GPU, capture and analyze trace files to get a task-based overview of your game across both the CPU and GPU domains.
  • If you know that your game is CPU-bound, you might try using some CPU-specific tools to help improve your performance on the CPU, such as Intel® VTune™ Amplifier. In particular, with multiple cores now being the rule rather than the exception, parallelizing your code can have a big impact on overall CPU performance.
Para obtener información más completa sobre las optimizaciones del compilador, consulte nuestro Aviso de optimización.