I would like to ask if there is any API available for Windows to leverage GPU metrics like GPU load and MFX decode/encode usage in another application.
There are a lot of developers asking for this API, in order to use Intel's GPU metrics in their apps, like Windows gadgets GPU monitoring tools and other applications, outside GPA or other Intel's tools.
Good to see you again. Hope you are doing well.
The Intel Platform Analysis Library is probably what you want, specifically the Metrics Framework. https://software.intel.com/en-us/intel-platform-analysis-library
Metrics Framework is what GPA uses to collect a lot of it's performance data. I would go through their getting started guide and see if this could incorporate it into your project: https://software.intel.com/en-us/articles/intelr-metrics-framework-getting-started-guide
Let me know if you have any questions and I can get you in touch with a engineer from that Intel PAL team. :)
Is this Metrics Framework available free of charge for non-commercial(Personal Use) products? Because I was trying to make a taskbar application in C# that displays the system loads(CPU, RAM, GPU etc...) which I was able to do for everything except the integrated Intel GPU in my laptop.
If not, is there a free alternative(like nVapi and ADL) for this? I'm already aware of some third party applications that share their memory space however, they require to be kept running and more often than not they interfere with the nVidia Optimus technology which causes the external gpu to turn on.
I tried to persuade a few developers to leverage your suggestion and actually one managed to use it successfully.
Unfortunately, it seems that even latest Intel's runtime libraries called MetricsFrameworkRedist64.msi are not updated yet in order to support Windows 10 using Haswell (Win 8.1 and older work fine)
Do you have an ETA for new Metrics Framework libraries ?
Is there a link publicly available in order to have always access to the latest Metrics Framework libraries ?
Great! Glad that one of your engineers got it up and running.
Let me find you a Metrics Frame work expert to answer this question for you.. expect a response within the next few days.
I represent Metrics Framework. The redist package includes libraries supported by metrics framework as well as publisher libraries supported by other teams/projects. If you can tell me which libraries you're looking for I can better direct your question to the right person. The framework is platform independent and supports windows 10, so I suspect you're looking for support for specific publishers.
@MARIE M. (Intel)
according to the developer, he has two issues: ( I copy his own words)
"1) The important publishers are MediaPerfPublisher & RenderPerfPublisher.
Both of them need to work properly.
2) One more weird thing is that Metrics Framework somehow requires install of redist installer.
In chapter 6.2 of Metrics Framework User’s Guide, it says that
“For a single application, install the extension binaries to your application’s working directory.”
“the extension binaries” should be “igm_DefaultManager.dll”, “igm_MediaPerfPublisher.dll” & “igm_RenderPerfPublisher.dll”,
so if I set these dlls with the app, I should be able to use Metircs Framework without install of redist installer.
However, when I install the redist installer the metric works properly, but when I just put the dlls with my exe file without installing the redist package, it doesn't work properly."
What version of Metrics Framework are you using? According to my publisher docs, MediaPerf and RenderPerf, both support win 10. I'll contact the publisher owner to verify that MF includes publishers with win 10 support and will request updated publishers if necessary. I'll also ask him to take a look at this thread in case he has anything to add.
As to your second issue, I've found that MediaPerf requires a registry setting on some systems. It's being set/unset by the installer and this is why you're having trouble when MF isn't installed. I believe MediaPerf is the only publisher with this limitation. If you manually set the following key you should get these metrics without running the redist installer:
HKLM\SOFTWARE\Intel\EventTrace\EtwRenderSubmitCommandEnable = 1
The developer had submitted a form in https://software.intel.com/en-us/form/intel-platform-analysis-library-request on March 6th and received an e-mail with a download link from https://registrationcenter.intel.com/regcenter/registersninfo.aspx & serial number on March 22.
So, i believe it's the latest.
Also he told me that the Metrics Framework is part of the Intel® Platform Analysis Library 2015, so although it's the latest, it seems that it's not updated.
I have asked before in a previous post, is there a publicly available link in order to have access always to the latest Metrics Framework redistributable ?
For the second issue using your registry setting the metrics work fine without using the Metrics Framework redistributable.
Unfortunately, using Windows 10 the metrics are always 0%, even with that method since it uses the same publisher - igm_MediaPerfPublisher.dll
Hi Nikos and Seth
The version of Metrics Framework distributed with PAL is the most recent external release, but is from last August and doesn't include the publishers with Win10 support. We are working on a new PAL release now which is scheduled for August. In the mean time, I recommend you take latest publishers from the GPA package and use them to replace the old ones that came with MF. The publishers in question are owned by GPA and are included in the standard installation, so perhaps Seth can help with this? If not, let me know and I'll see what can be done to get you new publisher binaries.
I share your frustration with the challenges of getting the latest version of MF and I am working to make this easier. I'm in the process of researching open sourcing the project which would certainly make it more accessible, but I'm just starting the process and expect it will take some time.
I think there is a curse around Media Metrics and new Windows OS.
I've been writing about Media Metrics issues here in GPA thread since 2013 (!)
Take a look here: https://software.intel.com/en-us/forums/graphics-profiling-debugging-and-analysis/topic/496318
The issue back then was about Windows 8.1 support and later the same issue happened again with Windows 10
Take a look here (it's the latest report about the issue I have done a lot more before that) : https://software.intel.com/en-us/forums/graphics-profiling-debugging-and-analysis/topic/593869
Now, I have downloaded the latest Intel GPA 2016 R1 release and grabbed the latest igm*.dll files with a date modified version of March 2016 (igm_MediaPerfPublisher.dll & igm_DefaultManager.dll).
I couldn't find a new igm_RenderPerfPublisher.dll.
Using the registry "hack" I managed to use Media Metrics with 0% counter !
Even with the latest igm*.dll libraries I have the same issue using Windows 10!
Is there something else that I could try ?
So I think we have a temporary solution for you.
Here is a link to get publishers that should work for you: https://my.syncplicity.com/share/hxcmjgeg0ttew6k/gpa_publishers_16.2_298926
I have private messaged you the password.
To use these with GPA's System Analyzer, simply drag them into the C:\Program Files\IntelSWTools\GPA_16.2\Components64 directory.
If other developers on the forums are running into the same issue, let me know and I can give you the password as well.
Please let me know if this solves your issue Nikos!
Thank you for the new publishers.
Unfortunately they don't work using my Core i7 4790 - Windows 10 x64 and Media Metrics.
I used the x64 Windows components from the release folder (not the debug)
Waiting for your feedback.
I got a suggestion from a developer that decided to not use it, eventually.
"The entire MF is quite complex and I would just need a very small bit of the entire stuff.
It would be great if Intel would offer a simple API (straight in their drivers) to read basic information from iGPUs - similar to NVAPI or AMD’s ADL"
It looks reasonable and feasible, I think.
Thank you for the feature request.
Let's see if we can get these publishers working for you though. Would it be possible to collect a DebugView trace from the session? This would shed more light on the cause of the issue.
Also, with the publishers in the GPA component64 directory,do you see media metrics in GPA?
Regarding DebugView, could you give me some instructions how to use it ?
Now, about GPA and the new publishers, with a copy-paste to component64 folder, nothing changed from the previous versions.
So, I copy-paste my one year old comments from previous versions:
"1) If I want to use continuous metrics from files playing from a playlist one after the other, I have to use "System Analyzer" only
You haven't managed to fix the "Analyse Application" method yet
But the problem is that using "System Analyzer" there is a certain GPU overhead, just by opening SA without using any media file (It's about 23% at 600MHz GPU clock of my HD 4600)
On the other hand, "Analyze Application" has zero (0%) GPU overhead.
2) Using "Analyse Application" you haven't managed to fix HUD location bug. Once again I have to open it in the upper left corner only, when i use it in Window mode."
I have been trying to create an application for my company that monitors the Intel HD/Iris GPU load on out Intel E3 servers. I primarily have to get information from the Intel GPU about how many "QuickSync" threads are currently being used on the Intel GPU. I have looked into various SDKs/Libraries that would help me do this.
The most promising thing I came across is the Intel "Metrics Framework" (within the Intel "Platform Analysis Library"). This SDK seemed like it would provide what I needed.
I created an application that would monitor the following "metric" IDs:
When I ran that application on my Intel desktop or laptop systems (running Windows 10 Pro 64 bit), the application seemed to return the appropriate information. Unfortunately, when I ran the same application on one of our Intel E3 servers (running Windows 2012 Server), the application returned an error, that was not able to find those same "metric" IDs.
As far as I can tell, both the desktop and server computers have Intel GPUs which are running the same Intel Graphics drivers.
Anyone have any idea how I can resolve this issue (to monitors those "metric" IDs on the server)???
If not, does anyone know of an alternate SDK or library to do this (get information from the Intel GPU about how many "QuickSync" threads are currently being used on the Intel GPU)???
I am trying to create an application (utility) that monitors various aspects of each system that it is running on:
- CPU usage
- GPU usage
- MFX (Intel QuickSync acceleration) resource usage
I have written some software that makes use of (is based on) the Intel PAL (Metrics Framework) SDK. The software seems to work fine on my test system. However, when I run it on one of the production systems, I get the following errors:
- Metric "com.intel.media.mfx_usage" not found
- Metric "com.intel.gpu_usage" not found
Any idea how I can resolve this???
Unfortunately we are not able to offer support for PAL. This forum is only for Intel® GPA related issues. I would recommend looking in a different forum, as engineers their may be able to help you more. Try this forum >https://software.intel.com/en-us/forums/software-tuning-performance-optimization-platform-monitoring<