Спор между процессами, которые декодируют камеры на разных ядрах - PullRequest
0 голосов
/ 04 мая 2020

Я декодирую 4k камер с помощью PyAV и обрабатываю полученные кадры. Моя задача - декодировать и обрабатывать каждый кадр менее чем за 33 мс. У меня получится, если я обработаю только одну камеру, затрачивая 26 мс на каждый кадр. Однако такая ситуация не возникает, когда обрабатывается больше камер. Вероятно, это связано с планированием, так как я использую один Linux процесс для каждой камеры.

Я попытался предоставить эксклюзивный доступ к ядрам процессора для каждого из этих процессов, настраивая isolcpus в GRUB. и выполнение каждого Linux процесса с taskset . Однако время, затрачиваемое на каждый кадр, составляет 41 мс (а не 26 мс, которые я выполняю, выполняя только один процесс).

Итак, мой вопрос, есть ли какой-нибудь способ достичь этой спецификации, равной 33 мс. Кроме того, я хотел бы знать, есть ли какой-то спор между процессами, назначенными разным ядрам, даже если используются taskset и isolcpus .

...