Ускорение Opencv с помощью CUDA на C ++ - PullRequest
0 голосов
/ 18 июня 2020

Я студент HP C, и у меня есть проект, кодирующий функции OpenCV и C ++. Чтобы добиться высокой производительности, я должен использовать параллелизм с кодом, поэтому я решил использовать ускорение CUDA. Я запутался со следующим…

  1. Достаточно ли для получения высокой производительности использовать только CUDA?
  2. Могу ли я использовать как OpenCV :: GPU, так и OpenCV :: CUDA с Cuda GPU?
  3. В чем разница между OpenCV :: GPU и OpenCV :: CUDA?

1 Ответ

1 голос
/ 19 июня 2020
  1. Программирование CUDA возможно только при наличии карт NVIDIA. Мощь оборудования GPU общего назначения будет использоваться только при параллельной обработке.
    Например, если вы работаете с изображениями, каждый пиксель изображений обрабатывается индивидуально. Тогда программирование на GPU помогает сэкономить время вычислений.

    В вашем приложении ввод второго пикселя зависит от ввода первого пикселя. Тогда лучше запустить приложение в самом процессоре. Опять же, передача данных от CPU к GPU и от GPU к CPU также повлияет на производительность. Необходимо проявлять осторожность при написании кода.

2 и 3. Синтаксис версий OpenCV2 cv :: gpu, тогда как синтаксис версии OpenCV3 - cv :: cuda. Это зависит от того, какую версию opencv вы используете.

...