Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

Estimating GPU availability in massive transcoding environment

Mamil_A_
Beginner
435 Views

 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
435 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.

0 Kudos
SergeyKostrov
Valued Contributor II
435 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.
0 Kudos
Petter_L_Intel
Employee
435 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 

0 Kudos
SergeyKostrov
Valued Contributor II
435 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.
0 Kudos
Bernard
Valued Contributor I
435 Views

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

0 Kudos
Bernard
Valued Contributor I
435 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.

0 Kudos
SergeyKostrov
Valued Contributor II
435 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 ).
0 Kudos
Bernard
Valued Contributor I
435 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.

0 Kudos
SergeyKostrov
Valued Contributor II
435 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.
0 Kudos
Bernard
Valued Contributor I
435 Views

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

0 Kudos
Reply