Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
9 Views

IPP 7 H264VideoDecoder high CPU patch

Since my last report of high CPU when using multiple threads with the H264VideoDecoder got dismissed as being an OpenMP issue. I figured I would start a new thread to make it easier for people to find the real solution. Hopefully this will get fixed in a newer IPP update as I would consider this a pretty major problem.

See the attached patch file for how to fix it.
0 Kudos
3 Replies
Highlighted
Employee
9 Views

Hello,

Thanks for sharing it. We will have further check.

Regards,
Chao
0 Kudos
Highlighted
Beginner
9 Views

I encountered the same issue as well and fixed it in the following way:
// umc_h264_task_broker.cpp line 1751
bool TaskBrokerTwoThread::GetNextTaskInternal(H264Task *pTask)
{
...
if (!pTask->m_iThreadNumber)
{
SwitchCurrentAU();
m_completedQueue.clear();
return false;
}
// Only signal threads if there are tasks
Ipp32s cnt_tasks = GetNumberOfTasks(true);
if (cnt_tasks)
AwakeThreads();
...
}
Note, this does lead to a hang when closing the H264 decoder which I then fixed as follows
// umc_h264_task_supplier.cpp line 1027
void TaskSupplier::Close()
{
m_threadGroup.Release();
if (m_pTaskBroker)
{
m_pTaskBroker->Release();
}
// from reset
//m_threadGroup.Release();
...
}
// umc_h264_thread.cpp line 121
void H264Thread::Release()
{
m_bQuit = true;
Reset();
if (IsValid())
{
//m_bQuit = true;
Awake();
Wait();
}
Close();
} // void Release(void)
0 Kudos
Highlighted
Beginner
9 Views

Hi Chao,

Can the Intel team verify the findings and the solution outlined by Steve (or Arvin)? Has a fix been included in IPP 7.1 beta?

And is this issue really related to (or equal to) the one outlined in thread #81357 ("H.264 performence issues in IPP 7.0.2"), which seems very similar and is announced as having been fixed in 7.1 beta?

Thanks.

Best regards,

- Jay
0 Kudos