Welcome back to the OpenVINO channel
On Video 18 we presented the Intel integrated graphics, the GPU
We demonstrated how to use it for inference.
On Video 44, you can see how to use the fixed functions inside that GPU for video encode and decode and even image processing
So the integrated GPU is performing multiple operations,
And we need a way to gauge the utilization of the various functions,
Maybe we'd like to make sure we are using not more than a certain percentage of the GPU
and leave headroom for other applications
Maybe we need to know if the performance bottleneck is the decode or the inference and so on..
There are multiple tools to do that, vTune is probably the best I'm aware of,
But I'd like to show you a simpler tool, you could just start and use even today.
This tool is called metrics-monitor You can find lot's of documentation if you just google it.
Metrics Monitor is part of Intel Media SDK and provided with Intel OpenVINO
Of course you need to have OpenVINO installed and the OpenCL driver for the integrated GPU working,
Watch Video 18.
The metrics-monitor is part of the media-SDK samples
First stage is to build the samples.
You will need Sudo permissions Initialize the OpenVINO environment
Go to the samples directory, Create a build directory..
(set MFX_HOME)
Cmake and make..
In _bin/x64 you'll find the media-sdk samples
Decode sample, encode sample and so on, but also the metrics monitor..
Let's open a new terminal..
We need sudo permisions
Go to the media-sdk samples And run the metrics-monitor
Now we can see the execution units utilization under "RENDER"
But also the utilization of the fixed functions for decode encode and image processing
we call VDBOX for Video-Decode-Box and VEBOX
These are the middle culomns , Video, Video2, Video_E
And we can see the frequency of the GPU, now about 300 MHz..
On this window I will just run "top" to gauge the CPU utilization..
First, let's run Inference on the CPU..
I'm running the benchmark utility, check video 32..
You can see that the CPU is at more than 300%,
I have 2 cores on this machine, 2 threads each, so 4 logical cores, and 3 or them are fully utilized..
The GPU how ever is totally idle..
Now let's run the same benchmark on the integrated GPU.
You can see how execution units utilization is going up to almost 100% ,
the GPU freq. is going up to 1 GHz
And the CPU is still working but went down from 350% to 100%
So we have taken the load of more than 2 cores and offloaded it to the GPU..
Now the CPU can do much more..
Now let's take another example..
I'm taking a video file and I will decode it first on CPU only..
And you can see that the CPU is at 300% The GPU is of course idle..
Now let's run the same decode on the GPU
And you can see that the GPU fixed functions, the decode fixed functions are going up to 100%,
The GPU freq to over 1GHz And most important, the CPU is only at 100%..
So we saw how to take tasks like inference and decode from the CPU to the GPU that is anyway idle
And by that offload the CPU and basically get more out of your system..
The integrated GPU can decode encode and even perform video processing, use it..
Subscribe to our channel, to get more videos like this one
Thank you.