{"id":13731635,"url":"https://github.com/GameTechDev/MetricsDiscoveryHelper","last_synced_at":"2025-05-08T05:30:25.619Z","repository":{"id":150899531,"uuid":"145734150","full_name":"GameTechDev/MetricsDiscoveryHelper","owner":"GameTechDev","description":"A wrapper for Intel(R) MetricsDiscovery API that simplifies some common tasks and provides a more unified interface across different graphics APIs.","archived":true,"fork":false,"pushed_at":"2023-01-03T22:53:32.000Z","size":1528,"stargazers_count":21,"open_issues_count":0,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-11-14T22:35:34.082Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GameTechDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-22T16:20:02.000Z","updated_at":"2024-09-20T19:40:41.000Z","dependencies_parsed_at":"2023-04-26T02:17:05.234Z","dependency_job_id":null,"html_url":"https://github.com/GameTechDev/MetricsDiscoveryHelper","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FMetricsDiscoveryHelper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FMetricsDiscoveryHelper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FMetricsDiscoveryHelper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameTechDev%2FMetricsDiscoveryHelper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameTechDev","download_url":"https://codeload.github.com/GameTechDev/MetricsDiscoveryHelper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253008303,"owners_count":21839624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T02:01:34.502Z","updated_at":"2025-05-08T05:30:25.610Z","avatar_url":"https://github.com/GameTechDev.png","language":"C++","readme":"# DISCONTINUATION OF PROJECT #\nThis project will no longer be maintained by Intel.\nIntel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.\nIntel no longer accepts patches to this project.\n# MetricsDiscoveryHelper\n\nMetricsDiscoveryHelper is a runtime library that helps configure and collect\nIntel GPU metrics using the [Intel\u0026reg; Metrics Discovery\nAPI](https://github.com/intel/metrics-discovery).  The intent is that this is a\nfairly thin layer that:\n\n- implements some of the common functionality requried to access the Intel\u0026reg;\n  MetricsDiscovery API,\n- adds some abstractions that simplify use in real-time applications,\n- provides an interface that can be implemented by Intel\u0026reg; MetricsFramework,\n- and has as low overhead as possible for use in real-time analysis scenarios.\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) for information on how to request\nfeatures, report issues, or contribute code changes.\n\n## License\n\nCopyright 2018 Intel Corporation\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n## MetricsDiscovery API\n\n[Intel\u0026reg; Metrics Discovery API](https://github.com/intel/metrics-discovery)\nis the Intel graphics driver's API providing access to GPU architecture\nproperties, metrics, and override controls.  For more information on Intel GPU\narchitecture (which is useful to understand all the metrics) refer to [Intel's\nGraphics Developer\nGuides](https://software.intel.com/en-us/articles/intel-graphics-developers-guides)\nand/or [Intel's Programmer's Reference\nManuals](https://01.org/linuxgraphics/documentation/hardware-specification-prms).\n\nSee [metrics_discovery_helper.h](source/metrics_discovery_helper.h) for\ndocumentation on how to use this library, as well as the following samples:\n\n| Example | Description |\n| - | - |\n| [samples/list_metrics](samples/list_metrics/list_metrics.cpp) | Enumerate all _global symbols_, _overrides_, _concurrent groups_, _metric sets_, _metrics_, and _information_ available on the system. |\n| [samples/periodic_sample](samples/periodic_sample/periodic_sample.cpp) | Demonstrates sampling metrics at a periodic interval. |\n| [samples/range_sample_dx11](samples/range_sample_dx11/range_sample_dx11.cpp) | Demonstrates sampling metrics around a range of DX11 commands. |\n\nMetrics are organized into a hierarchy of _metric sets_ within _concurrent\ngroups_.  Within each concurrent group, you can only activate a single metric\nset at a time.  However, one metric set can be active from each concurrent\ngroup at the same time.\n\nParticular metrics are architecture specific, and may not be available on other\nGPUs.  The following are example metrics from the \"RenderBasic\" metric set in\nthe \"OA\" concurrent group available on a Skylake (Gen9) GT2 GPU.  There are\nmore metrics available in other metric sets; use the `list_metrics` sample to\nlist all the metrics available on your system.\n\n| Metric SymbolName | Description |\n| - | - |\n| GpuTime                          | Time elapsed on the GPU during the measurement. |\n| GpuCoreClocks                    | The total number of GPU core clocks elapsed during the measurement. |\n| AvgGpuCoreFrequencyMHz           | Average GPU Core Frequency in the measurement. |\n| VsThreads                        | The total number of vertex shader hardware threads dispatched. |\n| HsThreads                        | The total number of hull shader hardware threads dispatched. |\n| DsThreads                        | The total number of domain shader hardware threads dispatched. |\n| GsThreads                        | The total number of geometry shader hardware threads dispatched. |\n| PsThreads                        | The total number of pixel shader hardware threads dispatched. |\n| CsThreads                        | The total number of compute shader hardware threads dispatched. |\n| GpuBusy                          | The percentage of time in which the GPU has been processing GPU commands. |\n| EuActive                         | The percentage of time in which the Execution Units were actively processing. |\n| EuStall                          | The percentage of time in which the Execution Units were stalled. |\n| EuFpuBothActive                  | The percentage of time in which both EU FPU pipelines were actively processing. |\n| VsFpu0Active                     | The percentage of time in which EU FPU0 pipeline was actively processing a vertex shader instruction. |\n| VsFpu1Active                     | The percentage of time in which EU FPU1 pipeline was actively processing a vertex shader instruction. |\n| VsSendActive                     | The percentage of time in which EU send pipeline was actively processing a vertex shader instruction. |\n| PsFpu0Active                     | The percentage of time in which EU FPU0 pipeline was actively processing a pixel shader instruction. |\n| PsFpu1Active                     | The percentage of time in which EU FPU1 pipeline was actively processing a pixel shader instruction. |\n| PsSendActive                     | The percentage of time in which EU send pipeline was actively processing a pixel shader instruction. |\n| PsEuBothFpuActive                | The percentage of time in which pixel shaders were processed actively on the both FPUs. |\n| Sampler0Busy                     | The percentage of time in which Sampler 0 has been processing EU requests. |\n| Sampler1Busy                     | The percentage of time in which Sampler 1 has been processing EU requests. |\n| SamplersBusy                     | The percentage of time in which samplers have been processing EU requests. |\n| Sampler0Bottleneck               | The percentage of time in which Sampler 0 has been slowing down the pipe when processing EU requests. |\n| Sampler1Bottleneck               | The percentage of time in which Sampler 1 has been slowing down the pipe when processing EU requests. |\n| RasterizedPixels                 | The total number of rasterized pixels. |\n| HiDepthTestFails                 | The total number of pixels dropped on early hierarchical depth test. |\n| EarlyDepthTestFails              | The total number of pixels dropped on early depth test. |\n| SamplesKilledInPs                | The total number of samples or pixels dropped in pixel shaders. |\n| PixelsFailingPostPsTests         | The total number of pixels dropped on post-PS alpha, stencil, or depth tests. |\n| SamplesWritten                   | The total number of samples or pixels written to all render targets. |\n| SamplesBlended                   | The total number of blended samples or pixels written to all render targets. |\n| SamplerTexels                    | The total number of texels seen on input (with 2x2 accuracy) in all sampler units. |\n| SamplerTexelMisses               | The total number of texels lookups (with 2x2 accuracy) that missed L1 sampler cache. |\n| SamplerL1Misses                  | The total number of sampler cache misses in all LODs in all sampler units. |\n| SlmBytesRead                     | The total number of GPU memory bytes read from shared local memory. |\n| SlmBytesWritten                  | The total number of GPU memory bytes written into shared local memory. |\n| ShaderMemoryAccesses             | The total number of shader memory accesses to L3. |\n| ShaderAtomics                    | The total number of shader atomic memory accesses. |\n| L3Lookups                        | The total number of L3 cache lookup accesses w/o IC. |\n| L3Misses                         | The total number of L3 misses. |\n| L3SamplerThroughput              | The total number of GPU memory bytes transferred between samplers and L3 caches. |\n| L3ShaderThroughput               | The total number of GPU memory bytes transferred between shaders and L3 caches w/o URB. |\n| ShaderBarriers                   | The total number of shader barrier messages. |\n| GtiVfThroughput                  | The total number of GPU memory bytes transferred between 3D Pipeline (Command Dispatch, Input Assembly and Stream Output) and GTI. |\n| GtiDepthThroughput               | The total number of GPU memory bytes transferred between depth caches and GTI. |\n| GtiRccThroughput                 | The total number of GPU memory bytes transferred between render color caches and GTI. |\n| GtiL3Throughput                  | The total number of GPU memory bytes transferred between L3 caches and GTI. |\n| GtiHdcLookupsThroughput          | The total number of GPU memory bytes transferred between GTI and HDC, when HDC is doing TLB lookups. |\n| GtiReadThroughput                | The total number of GPU memory bytes read from GTI. |\n| GtiWriteThroughput               | The total number of GPU memory bytes written to GTI. |\n| SamplerBottleneck                | The percentage of time in which samplers have been slowing down the pipe when processing EU requests. |\n| QueryBeginTime                   | The measurement begin time. |\n| CoreFrequencyMHz                 | The last GPU core (unslice) frequency in the measurement. |\n| EuSliceFrequencyMHz              | The last GPU Execution Unit slice frequency in the measurement. |\n| ReportReason                     | The reason of the report. |\n| ContextId                        | The context tag in which report has been taken. |\n| CoreFrequencyChanged             | The flag indicating that GPU core frequency has changed. |\n| QuerySplitOccurred               | The flag indicating that query has been split during execution on the GPU. |\n| ReportId                         | Query report identification number. |\n| ReportsCount                     | The number of available query reports. |\n| OverrunOccured                   | The flag indicating that Oa buffer has been overran. |\n| SampleSequence                   | Number identifying report sequence. |\n| SamplePhase                      | Buffer execution phase. |\n| GpuNode                          | GPU node buffer was sent to. |\n\n","funding_links":[],"categories":["Graphics"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGameTechDev%2FMetricsDiscoveryHelper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGameTechDev%2FMetricsDiscoveryHelper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGameTechDev%2FMetricsDiscoveryHelper/lists"}