Hello support team,
I try to use H264 "sw" encode two 1080P bitstream at the same time. The cpu usage is up to 100%.
I have tried setting async =2. Encode one bitstream can reduce to 40% usage, but two bitstream is up to 100%.
Is there any other way to reduce cpu usage?
Product version: 2018 R2
Platform : Windows10 I7-8700 3.2GHZ UHD 630: 24.20.100.6287
Sample encode cmd: sample_encode.exe h264 -i input.yuv -o output.264 -sw -w 1920 -h 1080 -f 60 -b 8200 -cbr -g 120 -r 2 -async 2
Link Copied
Yes, let me know what's the bottleneck vTune shows.
In general, async depth sets the queue size when the sync operation occurs during hardware mode, so set it to 1 can make the CPU doing more sync operation.
For software mode, it should behavior the same, you might try to increase sync depth and see.
Again I am not quite confident if we could improve too much in the software mode since the library should be optimized already and only for backup usage when HW mode is not available.
Mark
Hi Guan-lin,
Since you are using software codec, the optimization method is the same as the way we resolve a general software based on CPU. So you can use vTune to find the bottleneck and find a way to tune it. Otherwise, you could limited the input bandwidth by set async depth to 1.
Although you miss the whole point of Media SDK, it uses hardware acceleration on GPU to free the CPU usages. Software codec is the fallback mode of the hardware codec, so we normally don't recommend to use it independently.
If you are decoding HEVC, we have a GACC path which uses general GPU execution unit and might offload but we don't have this path for H.264.
What is your application and on which OS?
Mark
Hi Mark,
Thanks for your reply.
I develop application for multi-video recording on Win10 and decide to use SW or HW depending on different situation.
I intend to use Intel SW to replace my current SW record solution.
I have set async depth to 1, but the CPU usage is more than set async depth to 2.
I will try to use vTune to tune it.
Yes, let me know what's the bottleneck vTune shows.
In general, async depth sets the queue size when the sync operation occurs during hardware mode, so set it to 1 can make the CPU doing more sync operation.
For software mode, it should behavior the same, you might try to increase sync depth and see.
Again I am not quite confident if we could improve too much in the software mode since the library should be optimized already and only for backup usage when HW mode is not available.
Mark
For more complete information about compiler optimizations, see our Optimization Notice.