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