When I used the MSDK decoder I found that the decoder didn't use the GPU even I set the command parameter "-hw" both on Windows and Linux operating systems.
First, I will show my test on the Windows operating system.
The detailed information of the Windows host is:
CPU: Intel(R) Core(TM) i7-4770 CPU @3.5GHz
GPU: Intel(R) HD Graphics 4600
OS: windows 7 64bit
complier: Microsoft Visual Studio 2012
GPU monitor tool: GPU-Z
MSDK version: Intel Media SDK 2014 R2 for Clients(the release time is 2014-05-12)
test application: Video Decoding Sample of Intel Media SDK 2014 R2 for Clients
When I run the decoding program in the Microsoft Visual Studio 2012, the command parameter was "h264 -i D:\input.h264" or "h264 -hw -i D:\input.h264". The test result is as follows:
We can see that the GPU usage is 0 in both situations.
Then I will show my test on the Linux operating system.
The detailed information of the Linux host is:
CPU: Intel(R) Core(TM) i7-3615QE CPU @ 2.30GHz
GPU: Intel(R) HD Graphics 4000
Linux kernel version: 3.2.0-41
Linux distribution: Ubuntu 12.04 LTS 64bit
GPU monitor tool: intel-gpu-tools 1.2
MSDK version: Intel Media SDK 2014 R2 for Linux Servers(the release time is 2014-06-06)
test application: Video Decoding Sample of Intel Media SDK 2014 R2 for Linux Servers
When I run the decoding program in the command line, the command parameter was "./sample_decode_drm h264 -hw -i input.h264 -o output.yuv". The document named "readme-decode.pdf" in this sample says that "-hw: Use platform-specific implementation of Intel® Media SDK. Should be always set since there is no software library for Linux platforms." So I must set the command parameter "-hw" otherwise the program would run into error. In the test, the CPU usage was about 90%, and the output of the command "intel_gpu_top" was as follows:
As we can see, the value of "render busy" was always 0. It meant that the GPU wasn't used. When the decoding process finished, the output said the decoding frame rate was about 1060fps.
Then it confused me that why the decoder didn't use the GPU at all even I set the "-hw" option.
PS. I also tested the sample_encode and sample_transcode program. They both used the GPU when I set the "-hw" option.
These is an error in my post.
When I tested the decoding on the Linux, the command was "./sample_decode_drm h264 -hw -i input.h264". I didn't let the program write the YUV to the file.
Media SDK decoder performance is quite fast, so my recommendation is to try a long enough test which will trigger the GPU. Also it would be great if you can check what graphics driver is installed on your system? Please update to the latest driver which can be found here - https://downloadcenter.intel.com