Many years ago, there were supercomputer companies that designed and sold very large systems that could crunch through the largest data sets imaginable. Then there were the 3D computer graphics companies that made their fortune by designing the fastest graphics processors that could display the data that was generated by the supercomputing companies. Eventually these technology companies merged in terms of being able to offer very fast systems to run complex simulations as well as display those results, in many cases as the results were actually calculated.
With the increasing performance of the Intel Xeon processors connected to the graphics accelerators, the entire interactive 3D graphics system could now be contained in a single system. While the display of the results from a scientific simulation is critical to the understanding of science, there are many other uses of interactive 3D graphics. From reviewing mechanical CAD designs to architectural renderings and playing games, the performance and interactivity is critical for the user experience.Intel (R) Graphics Analyzers help you to increase frame rate for your Intel based games.Click To Tweet
Just as developers need tools to understand the performance of a CPU intensive application in order to modify the code for higher performance, so do those that develop interactive 3D computer graphics applications. An excellent tool for this purpose is the Intel Graphics Performance Analyzer set. This tool, which is free to download, can help the developer understand at a very low level how the application is performing, from a number of aspects:
- System Analyzer – The System Analyzer gives real time feedback as to the performance of the CPU and GPU. Metrics for different APIs can be obtained, which aids in the identification of bottlenecks in the code, which can then be modified. The frame rate, which is what the end user experiences can be monitored on a frame by frame basis.
- Frame Analyzer – The Frame Analyzer assists the developer in determining where each frame is taking the most amount of time. Since the rendering phase can be complex and can change for each frame, it is important to understand if the shaders, texture mapping or other computations are reducing the frame rate and what can possibly be done about it. Lighting and color schemes can cause rendering issues that need to be dealt with.
- Platform Analyzer – The Platform Analyzer can identify the workloads that are running on the CPU and GPU. It is important to distribute and overlap these workloads for maximum performance. Since the application will be using both systems at once, distributing the work over the separate but connected systems will result in the highest performance.
- Graphics Trace Analyzer – The Graphics Trace Analyzer gives the developer process level event traces and in conjunction with a viewer, can assist the developer in identifying where the application is spending time. Users can choose the visualization tool of choice and investigate threading, CPU and GPU traces and application specific events.
As applications have become more complex and more performant at the same time, tools like the Intel Graphics Performance Analyzer are a critical component of a toolbox that the developer must use. Similar to well known tools for investigating HPC applications, tools that assist in game development as well as other 3D interactive computer graphic can be even more important to the overall user experience. Users have come to expect certain frame rates in different industries and become disappointed if those frame rates are not present. It is important to use all of the available tools and techniques to get maximum performance at any given point in time.