Benchmarking and GPU-Debugging/Profiling Series: 01
Published:
(work in progress…)
In graphics rendering (both 2D and 3D), especially, in real-time rendering, frame rate (fps) is often presented as the computational improvement. However, the frame rate sometimes miss the important evaluation criteria. Therefore, the frame time (aka. render time in millisecond (ms)) could be a better option. For more, see this excellent article.
FPS Benchmarking
Other then the following tools, the NVIDIA Overlay (press alt+z in windows) can also do simple benchmarking.
- Intel’s PresentMon -> Supports OpenGL, Vulkan, DirectX; exports CSV. There are a bunch of tools mentioned in the github page that has backend PresentMon
- NVIDIA FrameVIEW -> Measures FPS, frame times, power, performance-per-watt, and logs results; backend, PresentMon
- feed the log to Frame-Time-Analysis. It reads the PresentMon style data
- CapFrameX (did not try)
- AMD’s OCAT (did not try), backend, PresentMon
FrameView In-Depth (v 1.7)
See the NV Blogpost
GPU-Debugger/Profiler
The existing graphics debugger tools work in this philosophy to evaluate per-frame rendering time (ms) to find the drawbacks. It is the only way to answer the uestion, why some rendering strategy is faster or slower? Some of the popular debuggers are:
- NVidia: NVIDIA Nsight Graphics, NSight Developer Tools, NSight Visual Studio add-ons
- Microsoft:
- RenderDoc, RenderDoc UE Plugin (Vulkan, D3D11, D3D12, D3DR, OpenGL, OpenGL ES supported)
- PIX DX12, support DX12
- Visual Studio Graphics Analyzer on Windows, Linux, Android, and Nintendo Switch
- Intel: VTune, Graphics Performance Analyzer (GAP)
- AMD: AMD GPU PerfStudio, Radeon Developer Tools Suite, Radeon Ray Tracing Analyzer
- UnityProfiler
- Unreal Insights
- perf
- Valgrind
- kempner: python-based
Other than, there are several other debuggers, e.g.,
- awesome-benchmark
- TauBench: A Dynamic Benchmark for Graphics Rendering (Dataset Reference Frames from Tampere University’s VGA Group
- qv: histogram, pixel value inspection, and statistics of rendered image
- NVAPI and Shader Execution Recording
