11.07.2015 Views

Performance Tools - NVIDIA Developer Zone

Performance Tools - NVIDIA Developer Zone

Performance Tools - NVIDIA Developer Zone

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Performance</strong> <strong>Tools</strong>Raul Aguaviva, <strong>NVIDIA</strong> Corporation


<strong>Performance</strong> <strong>Tools</strong> AgendaProblem statement<strong>NVIDIA</strong> Solution:NVPerfKit 2.0NVShaderPerfNVPerfHUD 4.0 DemoCopyright © <strong>NVIDIA</strong> Corporation 2004


What’s The Problem?Why is my app running at 13FPS after CPU tuning?How can I determine what is going on in that GPU?How come IHV engineers are able to figure it out?Copyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit 2.0 packageInstrumented DriverExposes Driver and GPU performance countersGLExpert, a debug runtime for OpenGLNVPerfSDKNVPerfAPI for accessing GPU signals in your applicationsSample code for OpenGL(tm) and DirectX(tm) applications<strong>NVIDIA</strong> <strong>Developer</strong> Control Panel<strong>Tools</strong>NVPerfHUD 4<strong>NVIDIA</strong> Plug-in for Microsoft PIX for WindowsgDEBugger (30-day trial version)Any tool using Windows PDH (VTune,...)Copyright © <strong>NVIDIA</strong> Corporation 2004


Old ArchitectureD3D DriverOGL DriverGPUCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureD3D DriverPerf countersOGL DriverPerf countersNVPerfAPIGPUPerf countersGPU counters available only in GeForce 6 and 7 seriesCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureD3D DriverPerf countersOGL DriverPerf counters GLExpertNVPerfAPIGPUPerf countersCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureNVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureSDK /yourapplicationNVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureSDK /yourapplicationNVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureSDK /yourapplicationMicrosoft PIXfor WindowsPIX Plug inNVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureSDK /yourapplicationMicrosoft PIXfor WindowsPIX Plug inNVPerfHUD4.0NVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 ArchitectureSDK /yourapplicationMicrosoft PIXfor WindowsPIX Plug inNVPerfHUD4.0graphic REMEDYgDEBuggerNVPerfAPICopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKIT 2.0 GLExpertNVPerfSDK / Your applicationgraphic REMEDYgDEBuggerOpenGL DriverGLExpertCopyright © <strong>NVIDIA</strong> Corporation 2004


GLExpert: What is it?Helps eliminate performance issues on the CPUOpenGL portion of the Instrumented DriverOutput information to console/stdout or debuggerDifferent groups and levels of information detailControlled using tab in NVDevCPLWhat it can do (today)GL Errors: print when they are raisedSoftware Fallbacks: indicate when the driver is in fall backGPU Programs: errors during compile or linkVBOs: show where they reside, mapping detailsFBOs: print reasons a configuration is unsupportedFeature list to grow with future driversCopyright © <strong>NVIDIA</strong> Corporation 2004


NVShaderPerf 1.8Run numbers and performance estimates without having thehardware or the driverInputs:Shader Code:GLSL, HLSL, Cg, !!FP1.0, ARBfp1.0, VSx.x, PSx.xGPU Arch:GeForce 7X00, GeForce 6X00, Geforce/Quadro FX seriesOutputs:Resulting assembly code# of cycles# of temporary registersPixel throughputTest all fp16 and all fp32Copyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfAPI: D3D/OGL Perf CountersGeneralFPSms per frameDriverDriver frame time (total time spent in driver)Driver sleep time (waiting for GPU)CountsTrianglesInstanced triangleBatchesLocked render targets (only Direct3D)MemoryAGP memory used in MB and bytesVideo memory used and total in MB and bytesCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit: GPU CountersRaw counterscount vertices, pixels...Simplified experimentsUnit bottleneck and utilizationRequire multiple passesABCCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit: GPU CountersRaw countersCount vertices, pixels...Simplified experimentsUnit bottleneck and utilizationRequire multiple passesPix for WindowsgDebuggerNVPerfSDKPDHNVPerfHUD 4NVPerfSDKABCCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit: GPU CountersVertex FetchVertexShaderPrimitiveSetupRaster /ZCullTextureUnit(Filtering)FrameBuffer(RAMMemory)Pixel ShaderRasterOperationsCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit: GPU CountersVertex FetchVertexShaderPrimitiveSetupRaster /ZCullTextureUnit(Filtering)FrameBuffer(RAMMemory)Pixel ShaderRasterOperationsCopyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfKit: GPU Raw Countersvertex_attribute_countVertex Fetchvertex_shader_busyVertexShaderculled_primitive_countprimitive_counttriangle_countvertex_countfast_z_countshaded_pixel_countPrimitiveSetupRaster /ZCullTextureUnit(Filtering)FrameBuffer(RAMMemory)shader_waits_for_textureshader_waits_for_roppixel_shader_busyPixel Shaderrop_busyRasterOperationsCopyright © <strong>NVIDIA</strong> Corporation 2004


What is NVPerfHUD?Direct3D PERFormance Heads Up DisplayOverlay graphs and debugging tools on top ofyour applicationInteractive tools for debugging and performancetuning4 different HUDs<strong>Performance</strong> DashboardDebug ConsoleFrame DebuggerFrame Profiler (New in 4.0)Copyright © <strong>NVIDIA</strong> Corporation 2004


NVPerfHUD 4.0 DemoCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardResource creation monitorResources monitoredTexturesVolume TexturesCube texturesVertex BuffersIndex buffersStencil and depth surfacesCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: <strong>Performance</strong> DashboardSpeed controlCopyright © <strong>NVIDIA</strong> Corporation 2004


Demo: The simplified graphicspipelineVertexAssemblyVertex Shader Pixel Shader Raster OPerationsCopyright © <strong>NVIDIA</strong> Corporation 2004


Freezing the applicationOnly possible if the application uses time-basedanimationPos += V * DeltaTimeStop the clockIntercept: Query<strong>Performance</strong>Counter(), timeGetTime()NO RDTSC!!Copyright © <strong>NVIDIA</strong> Corporation 2004


Project StatusNVPerfKit 2.0 available NOW!Take it now from: http://developer.nvidia.com/NVPerfKitWindows XP (Rel 85), Linux (beta)NVPerfKit 2.1, available SIGGRAPH06Next generation drivers (Rel 95)Windows XP and Linux (32bit and 64bit)What types of things are interesting?NVPerfKit@nvidia.comCopyright © <strong>NVIDIA</strong> Corporation 2004


Questions?Online:http://developer.nvidia.com/NVPerfKithttp://developer.nvidia.com/NVPerfHUDNVPerfKIT@nvidia.comNVPerfHUD@nvidia.comNVShaderPerf@nvidia.comFXComposer@nvidia.comCopyright © <strong>NVIDIA</strong> Corporation 2004

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!