-O4. Что за ключ для gcc?

Весь вопрос выше.
По сути только с ним на С (не С++) удалось заюзать opencv 3.2.
Откопал этот совет в инете.

Добавлю ссылку на проблему:
github.com/...​opencv/opencv/issues/8438

👍НравитсяПонравилось0
В избранноеВ избранном0
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

А зачем подключать к С? Напиши прослойку на С++, которая будет дергаться из С через extern «C» {} а сама уже вызовет С++ нормально.

это куда тебя так занесло? Месяц назад собирал 3.2 под винду с 13 студией, так глубоко не бросало, cmake все там разруливал

www.learnopencv.com/...​stall-opencv3-on-windows

так может библиотеки под плюсы собраны? Ну а тормоз там решается с помощью платной библиотеки — вроде Intel IPP. Там скорость операций с матрицами в разы увеличивается

Уже давно CV использую и всегда собираю ее сам, не использую их готовые сборки — хрен его знает, что они туда всунули. Потратишь на это день, зато получишь библиотеки под свое окружение.
По платным ничего не скажу, у нас в команде были ребята, которые юзали IPP. По их словам на матрицах был их большой выигрыш. Но у нас используются ресайзовские операции, время обработки там большие. Так вот, пробовали ресайзы пропустить через их триаловскую IPP , время осталось прежнее. Поэтому отказались от нее. Но в будущем собираюсь вернуться. Хочу сделать свой видео маттинг (выделение форграунда от бекгаунда), для этого используется тяжелая математика openCV. Сейчас один кадр у меня обрабатывается за 7 секунд при частоте 25 кадров в секунду, что недопустимо для меня. Поэтому есть надежда, что используя IPP удастся этого время сократить.
Ну инфа для размышления. С 2012 NVIDIA карты идут со встроенным opencv. Уже давно руки чешутся применить их акселератор у себя в проекте. При сборке openCV я видел опции их подключения.

Версию gcc — в студию. (Полный вывод gcc -v)

Стандартный в бубунте.

Мой стандартный в 16.04 пишет немного иначе (привожу только последнюю строчку, весь вывод долгий):

gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)

И у него я не вижу такого различия в O3 и O4. По тесту на список опций там разницы вообще нет. По документации — тоже.

Может, там что-то ещё в сборочнице реагирует на этот флаг и включает, например, LTO?

посмотри в исходниках, ничем от -O3 он не отличается
github.com/...​cc/blob/master/gcc/opts.c

Подписаться на комментарии