Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Mamil_A_
Beginner
61 Views

Estimating GPU availability in massive transcoding environment

 Say you have a machine on which transcoding of massive number of live streams happens concurrently.

Whenever a new transcoding requirement comes, before trying to run the task the obvious first step would be to estimate whether there are currently available GPU resources. If the resources are available, the transcoding session would be launched, otherwise, the task would be put on hold. 

The 'trial-and-error' paradigm (i.e. try launching the session, and if it fails, we will handle it somehow') is unsuitable as the streams are live, and there is no tolerance for run-time error of that kind. Instead, some kind of reliable GPU resources estimation mechanism (regardless of how precise) is needed.

Any suggestion as to how to approach solving this kind of problem would be greatly appreciated.

Thanks,

Mamil

0 Kudos
10 Replies
andy4us
Beginner
61 Views

Self learning. On startup, have it create internal video generators ( just create buffers of image data) of the same matrix size as the live video streams. Then profile itself. Once it's figured out the practical limit for that machine and video matrix size, it sets the limit to that.

SergeyKostrov
Valued Contributor II
61 Views

>>...Whenever a new transcoding requirement comes, before trying to run the task the obvious first step would be to estimate whether >>there are currently available GPU resources... I'm not sure that Intel Media SDK provides API for verification of availability of GPU resources. However, I know that NVIDIA APIs allow to do it and that subject was recently discussed on the forum.
Petter_L_Intel
Employee
61 Views

All,

Intel Media SDK does not have the capability to report GPU load. And unfortunately there is currently no Windows tool that provides GPU load programmatically or via command line utility (as far as we know).

We are exploring possible solutions to this request and will keep the community posted as soon as we have new information to share.

In the meantime we suggest exploring the method that "andy4us" suggested.

Regards,
Petter 

SergeyKostrov
Valued Contributor II
61 Views

>>... there is currently no Windows tool that provides GPU load programmatically or via command line utility (as far as we know)... Some WMI providers allow to get GPU load, its temperature, and another attributes. An utility with GUI to access to WMI and explore is wbemtest.exe.
Bernard
Black Belt
61 Views

Hi Mamil, there is Nvidia PerfKit tool which could probably be  used to gather performance data. Web Link //developer.nvidia.com/nvidia-perfkit

Bernard
Black Belt
61 Views

I do not know if Nvidia exposes for user mode software  an API functions used to access GPU performance counters which are accessed from within the driver.

SergeyKostrov
Valued Contributor II
61 Views

All existing NVIDIA SDKs ( many! ) are for applications with Win32 applications and I don't see any relevance to applications with driver(s) ( see the initial question of the post ).
Bernard
Black Belt
61 Views

Thanks for informing.

Initial question was answered by me in my first post.In second post I asked about the availability of Nvidia specific API  to query hardware counters from user mode.It is not relatd to any drivers.

SergeyKostrov
Valued Contributor II
61 Views

>>...Initial question was answered by me in my first post... The question was about how to '...to estimate whether there are currently available GPU resources...' in some application using API and Not some magic performance tool.
Bernard
Black Belt
61 Views

And you in your post provided an example of WMI based tool wbemtest.exe  and how it is related to original poster question.

Reply