Лучшая модель для python параллельных вычислений на основе графического процессора - PullRequest
0 голосов
/ 05 апреля 2020

Я хотел бы спроектировать параллельный конвейер обработки видеоданных в Python со следующими идеями / требованиями:

  • У меня есть два внешних видеопотока (полученных через карты сбора данных) I хотел бы обрабатывать независимо и отображать потоки результатов в визуализации в конце конвейера.

  • Могут быть задействованы некоторые алгоритмы отслеживания, которые мне, возможно, придется запустить на GPU, чтобы максимизировать производительность.

  • Частота кадров видео составляет ~ 20 Гц, и я хотел бы, чтобы результат отображался с минимально возможной задержкой.

Поскольку многопоточность ограничена Python с помощью GIL для ресурсоемких вычислений ЦП, я предполагал, что многопроцессорная обработка - это хорошее решение, но так ли это на самом деле?

Таким образом, я начал реализацию, основанную на multiprocessing, где каждый процесс является «компонентом», который я отслеживаю / отправляю через multiprocessing.queue (каналы ОС под капотом), и который выполняет одно действие (производя изображения, фильтрация, рендеринг и т. д. c.) и передает полученное изображение через multiprocessing.queue в следующий процесс в конвейере.

Является ли этот тип модели хорошей идеей для этих требований, или есть более интуитивный / релевантный дизайн?
Звучит как "актерская модель", о которой я слышал, совместима ли она с GPU на основе вычисление? Должен ли я продолжать поиск в этом направлении?

...