NVIDIA Platform Analyzer or NvPA is a powerful and versatile application and instrumentation framework that allows you to easily capture and visualize the way parts of your application interact with each other, as well as with the CPU and GPU. NvPA includes a full-featured GUI for post-analyzing time-stamped runtime application events. It supports the capture of various data from the GPU, from the PhysX SDK, and from any application instrumented using the Platform Analyzer API. NvPA can be used with or without a GPU, and does not need to be configured specially in either case.
In order to graph information with NvPA, your application needs to advertise it so that it can be captured. This is done through a simple API: the Platform Analyzer API. This API is installed with NvPA and you can find it in the source/ folder in NvPA directory.
Using NvPA API is really simple:
1 – Include the header
2 – Create some events:
NvPAUtils *nvpa = new NvPAUtils; AgEventID ev1 = nvpa->registerEvent("BeginFrame"); AgEventID ev2 = nvpa->registerEvent("EndFrame")
3 – Call the events:
nvpa->startEvent(ev1); // do something useful here nvpa->stopEvent(ev1)
4 – Free resources:
This will create a capture file you can load later in NvPA event viewer. I used NvPA during the development of FluidMark 1.2.x and I must say it greatly helped me dealing with multi-core CPU stuff…
FluidMark and NvPA (NVIDIA Platform Analyzer)
Installing NVIDIA Platform Analyzer – (formerly: AgPerfmon)
1. Install nvpa_x86.msi or nvpa_x64.msi. You could install both, but
there is nothing to gain by it. You only need one.
2. If this is your first time installing nvpa, reboot so the new folder
is in the system path of all apps.
The 64bit installer installs native 64bit Python applications (the main
app, the viewer, extractor, and lanetimeline) and 32-bit
AgPmCollector.exe and perfmon2file.exe.
Both 64bit and 32bit installers include AgPerfMon_x86.dll and
AgPerfMon_x64.dll so they can profile 32bit or 64bit applications.
1 – Fermi appears to only report a 5 bit hardware warpid, when in fact
it can go as high as 47.
2 – on non-fermi architectures, there can be skew between the times
reported by each SM, causing kernel summaries to be badly wrong.
3 – our WiX scripts do not do upgrades properly, so uninstall older
versions of nvpa before installing a new one.