PerfWorks is a C++ API used for GPU performance analysis on NVIDIA GPUs. PerfWorks allows developers the ability to instrument an application and to access low-level performance metrics on NVIDIA GPUs. PerfWorks delivers these metrics in order to give developers the ability to recognize top performance limiters quickly and make appropriate application changes to remove the associated bottlenecks. These metrics can be collected over user ranges, draw calls or dispatches. There are four metric categories including: cumulative work, timing, activity and throughput.
PerfWorks is the successor to NVIDIA’s Perfkit. PerfWorks adds range based profiling and it supports next generation APIs featuring multi-threaded GPU work submission. GPU generations supported by PerfWorks includes Maxwell, Pascal and future generations when available. PerfWorks is used by NVIDIA internal tools including: Tegra Graphics Debugger, Nsight Visual Studio Edition and other future products.
PerfWorks supports NVIDIA Tegra, GeForce, Quadro, and Tesla GPUs based upon the NVIDIA Maxwell, and Pascal architectures.
Instructional Videos and Webinars can be found here.
PerfWorks SDK is available to developers on an evaluation basis. Requests for consideration to receive the SDK can be sent to Devtools-Perfworks-Early-Access@nvidia.com.
Microsoft’s PIX for Windows will support profiling for NVIDIA GPUs using PerfWorks. PIX for Windows is a Direct3D12 performance tuning and debugging tool for game developers. It has a long and storied history spanning three generations of Xbox console. For more information on PIX for Windows, please click on Microsoft’s blog.