Запрограммированный параллелизм в OpenCV - PullRequest
0 голосов
/ 24 января 2019

Мне известно, что OpenCV обладает возможностями параллелизма в форме многопоточности. Например, конструкция forEach позволяет ускорять циклы, используя потоки NumThreads.

Что мне неясно, так это то, что некоторые из интенсивных вычислительных функций (скажем, FFT) реализованы как распараллеленные версии. Я не рассматриваю ускорение GPU здесь.

У вас есть больше информации?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вам нужно копать исходный код.

Например, функция cv :: dft содержит несколько реализаций:

  1. OpenCL на GPU, CPU или iGPU (вы можетеустановить целевое устройство).Это будет параллельно на процессоре также.Вам необходимо настроить OpenCV-сборку с поддержкой OpenCL, настроить использование OpenCL true и установить ЦП целевого устройства (или другое).

  2. Реализация IPP, если ваша сборка OpenCV была настроена с IPP в CMake.

  3. Реализация HAL - также в CMake.

  4. Простой OcvDftImpl.

Все в ваших руках!

0 голосов
/ 24 января 2019

Opencv - это сложная библиотека, разработанная годами и объединяющая большинство форм параллелизма современных компьютеров.Это включает обработку SIMD (для разных производителей процессоров и разных поколений архитектуры), использование ускорителей с CUDA, opencl или opengl и многопоточность

Что касается последнего, opencv может использовать разные платформы в зависимости от их доступности (некоторые являются сторонними разработчиками).программное обеспечение, или доступны только в некоторых конкретных системах).Это включает в себя openMP, Intel Threading Building Blocks (TBB), pthreads и проприетарные фреймворки на macOS и windows.

Хотя я не могу сказать, если данная функция opencv на вашем компьютере распараллелена.Не все функции запрограммированы с параллельной поддержкой, и параллельные функции должны быть явно выбраны во время компиляции.Но библиотеки opencv часто создаются с поддержкой open-MP для многопоточности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...