Перейти к содержимому
Compvision.ru
mrgloom

Opencv2.1 + IPP +TBB

Recommended Posts

Наблюдая за тем, как при использовании opencv работает всего одно ядро, я начал задумываться об многопоточности.

но не все так гладко.

ставил на VS2008 под вин7 х64 запутался, пока отложил.

далее ставил на вин7 х32.

тут еще нужно отметить что у intel теперь все в какие то пакеты объединено и хрен их поймешь.

итак скачал Parallel Studio 2011 (Intel c++ компилятор+IPP+TBB) IPP не завелось, скачал отдельно IPP(ComposerXE-2011)- завелось, но только если компилировать opencv в VS compiler, а в intel compiler пишет, что ошибка в cv3dtracker.cpp (как решить не понял пока)

+ учитывая что я поправил все проекты http://software.intel.com/en-us/articles/new-directory-structure-and-library-naming-in-ipp/

протестировать производительность не получилось cxcoretest и т.д. у меня работает только на чистой сборке.

на моем приложении и core2 duo E8500

чистая сборка 42 сек

с IPP 41 сек

с TBB и IPP 32 сек

но можно отметить что взяв свое приложение где что то от opencv, что то стороннее(и скорее всего не параллелится) нагрузка была теперь 100% на 2 ядра, и скорее всего время исполнения тоже уменьшилось.(причем само приложение компилируется как VS compiler,так и Intel compiler(на пару сек выигрывает вроде))

еще я видимо не учитывал флаги компиляции по умолчанию вроде O2 cтоит.

если у кого есть идеи тестового приложения для проверки можно попробовать скомпилировать.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм действительно актуально ... поигрался бы с многопоточностью на своем 8-ми ядернике Core i7 Q740 (тоже видел, что юзается только одно ядро, что не есть гуд), но, увы, времени сейчас нет ... планировал ближе к лету этим заняться, как сессию закрою :hot:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хотелось бы увидеть список функций которые используют IPP и TBB , а то явно не все используют.

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

и еще

Is it desirable to get OpenCV 2.0 to use the IPP libraries?

For some functions the use of IPP still gives a noticeable performance improvement, but the number of such functions is much, much smaller than in OpenCV 1.x

Why was the support for IPP dropped? Does the road map for OpenCV intend to steer clear of IPP in the future?

IPP support was not dropped completely; we still use IPP, but in a smaller extent. Desirably, OpenCV should run faster on various platforms without having to use commercial closed-source libraries. We do not have plans to get rid of IPP, but we have ongoing optimization efforts to optimize critical time-consuming algorithms that we use, and so IPP is removed there and supported natively.

We found that only few algorithms can be optimized using existing OpenCV or IPP functions. Instead, many of the algorithms, such as HOG people detector, outlet detector, stereo correspondence etc., require manual optimization of the inner loops using intrinsics, OpenMP etc. We optimize such loops, but I doubt that any significant part of this optimized code will be included into IPP in the near future. If it happens and IPP counterparts do much better comparing to OpenCV, we will certainly include the corresponding hooks.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
cписок функций которые используют IPP и TBB , а то явно не все используют

можно попробовать в сорцах по маске *.cpp осуществить поиск внутри файлов parallel_for (хотя не знаю насколько это точно будет)

=

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\apps\traincascade\boost.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvcascadedetect.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvdistransform.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvhaar.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvlkpyramid.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvstereobm.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cv\cvsurf.cpp

C:\OpenCV-2.1.0-win\OpenCV-2.1.0\src\cvaux\cvhog.cpp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×