OpenCV ругается на отсутствие фичей CPU [РЕШЕНО]

Всем добра!

Пересобирал я себе kdenlive и как следствие теперь столкнулся с такой ошибкой при запуске:
******************************************************************
* FATAL ERROR: *
* This OpenCV build doesn't support current CPU/HW configuration *
* *
* Use OPENCV_DUMP_CONFIG=1 environment variable for details *
******************************************************************

Required baseline features:
SSE - OK
SSE - OK
SSE2 - OK
SSE2 - OK
SSE3 - OK
SSE3 - OK
SSSE3 - OK
SSSE3 - OK
SSE4.1 - OK
SSE4.1 - OK
POPCNT - NOT AVAILABLE
POPCNT - NOT AVAILABLE
OpenCV Error: Assertion failed (Missing support for required CPU baseline features. Check OpenCV build configuration and required CPU/HW setup.) in initialize, file /var/tmp/portage/media-libs/opencv-3.3.0-r4/work/opencv-3.3.0/modules/core/src/system.cpp, line 518
terminate called after throwing an instance of 'cv::Exception'
what(): /var/tmp/portage/media-libs/opencv-3.3.0-r4/work/opencv-3.3.0/modules/core/src/system.cpp:518: error: (-215) Missing support for required CPU baseline features. Check OpenCV build configuration and required CPU/HW setup. in function initialize

Ранее такого не случалось. Ну я сменил GCC на 7.2.0. Тулчейн пересобирал. Попробовал собрать opencv с GCC 6.4.0 - результат тот же. ЧЯДНТ?

emerge --info Portage 2.3.19

emerge --info
Portage 2.3.19 (python 2.7.14-final-0, default/linux/amd64/17.0/desktop, gcc-7.2.0, glibc-2.26-r3, 4.13.0-pf4 x86_64)
=================================================================
System uname:

KiB Mem: 8166136 total, 2893972 free
KiB Swap: 4194300 total, 4154352 free
Timestamp of repository gentoo: Tue, 26 Dec 2017 05:00:01 +0000
Head commit of repository gentoo: edbb288bd7337e0b8fab4925fe23987a1a72f071
sh bash 4.4_p12
ld GNU ld (Gentoo 2.29.1 p3) 2.29.1
ccache version 3.3.4 [enabled]
app-shells/bash: 4.4_p12::gentoo
dev-lang/perl: 5.26.1-r1::gentoo
dev-lang/python: 2.7.14-r1::gentoo, 3.4.6-r1::gentoo, 3.5.4-r1::gentoo, 3.6.1-r1::gentoo
dev-util/ccache: 3.3.4-r1::gentoo
dev-util/cmake: 3.10.1::gentoo
dev-util/pkgconfig: 0.29.2::gentoo
sys-apps/baselayout: 2.4.1-r2::gentoo
sys-apps/openrc: 0.34.10::gentoo
sys-apps/sandbox: 2.12::gentoo
sys-devel/autoconf: 2.13::gentoo, 2.69-r4::gentoo
sys-devel/automake: 1.9.6-r4::gentoo, 1.10.3-r1::gentoo, 1.11.6-r2::gentoo, 1.13.4-r1::gentoo, 1.14.1::gentoo, 1.15.1-r1::gentoo
sys-devel/binutils: 2.25.1-r1::gentoo, 2.28.1::gentoo, 2.29.1-r1::gentoo
sys-devel/gcc: 6.4.0::gentoo, 7.2.0::gentoo
sys-devel/gcc-config: 1.9.1::gentoo
sys-devel/libtool: 2.4.6-r4::gentoo
sys-devel/make: 4.2.1-r1::gentoo
sys-kernel/linux-headers: 4.13::gentoo (virtual/os-headers)
sys-libs/glibc: 2.26-r3::gentoo
Repositories:

gentoo
location: /usr/portage
sync-type: rsync
sync-uri: rsync://rsync.gentoo.org/gentoo-portage
priority: -1000
sync-rsync-extra-opts:
sync-rsync-vcs-ignore: true

local
location: /usr/local/portage
masters: gentoo
priority: 1

mva
location: /var/lib/layman/mva
masters: gentoo
priority: 50

steam-overlay
location: /var/lib/layman/steam
masters: gentoo
priority: 50

tox-overlay
location: /var/lib/layman/tox-overlay
masters: gentoo
priority: 50

Installed sets: @toolchain
ACCEPT_KEYWORDS="amd64 x86 ~amd64 ~x86"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/apache2-php7.0/ext-active/ /etc/php/apache2-php7.1/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo"
CXXFLAGS="-O2 -march=native -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="3dnow X a52 aac acl acpi alsa amd64 berkdb branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cxx dbus dri dts dvd dvdr emboss encode exif fam flac fortran ftdi gdbm gif glamor gpm gtk iconv ipv6 jpeg lcms ldap libnotify llvm mad mng modules mp3 mp4 mpeg multilib multislot ncurses nls nptl nvidia ogg opencl opengl openmp pam pango pcre pdf png policykit ppds pulseaudio qt3support qt5 readline sdl seccomp session spell sse3 ssl startup-notification static-libs svg tcpd tiff truetype udev udisks unicode upower usb v4l vdpau vorbis wxwidgets x264 xattr xcb xfce xml xv xvid zlib" ABI_X86="64" ALSA_CARDS="emu10k1 hda_intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-32 efi-64 efiemu pc emu qemu coreboot multiboot xen" INPUT_DEVICES="evdev keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-0" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python2_7 python3_5" RUBY_TARGETS="ruby25 ruby23" USERLAND="GNU" VIDEO_CARDS="nv nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Diversant написал(а):

Diversant написал(а):
ЧЯДНТ?

Не проверили поддерживает ли ваш процессор инструкцию POPCNT. Установите sys-apps/cpuid и проверьте:
cpuid | grep POPCNT

POPCNT instruction

POPCNT instruction = false

Вот только я не приметил где POPCNT отключается для OpenCV. Да вообще как-то странно, что раньше собиралось, а теперь нет, точнее сказать работало.

Покажи

Покажи

cpuinfo2cpuflags-x86

По-моему у меня его нет, что

По-моему у меня его нет, что надо поставить?

Да, он в

Да, он в app-portage/cpuid2cpuflags

/

А почему ту новость грохнули?

:wq
--
Live free or die

Новости не удаляют, просто

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

CPU_FLAGS_X86: mmx mmxext sse

CPU_FLAGS_X86: mmx mmxext sse sse2 sse3 sse4_1 ssse3

Тогда почему у тебя в

Тогда почему у тебя в конфигурации портажа

CPU_FLAGS_X86="fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority"

???

Выстави в /etc/portage/make.conf

CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 ssse3"

Странное дело, при компиляции

Странное дело, при компиляции OpenCV:

-- Performing Test HAVE_CPU_POPCNT_SUPPORT (check file: cmake/checks/cpu_popcnt.cpp)
-- Performing Test HAVE_CPU_POPCNT_SUPPORT - Success

При этом после компиляции отказывается работать по вышеназванной причинею

Если конфигурация портажа

Если конфигурация портажа (/etc/portage/make.conf и т.д.) соответствует железу, то попробуй

emerge -e $(qlist -IC opencv)

P.S. Ну и gcc-7.2.0, glibc-2.26-r3 как-то экстремальненько, конечно...

Сделал, не помогло. :(

Сделал, не помогло. :( При чём попробовал GCC 6.4.0.

A make.conf перед этим поправил?

A make.conf перед этим поправил, как я говорил?

Да и glibc-2.26-r3 у тебя нестабильная - ты уверен, что сабж ее нормально принимает? У авторов не смотрел на предмет совместимости?

Да, make.conf я поменял сразу

Да, make.conf я поменял сразу же как тут коснулось.

Вот здесь говорится:
OPENCV_CPU_DISABLE - allows to mask some processor features, so dispatched code doesn't run
OPENCV_CPU_DISABLE=AVX2,AVX,FP16

Но я не знаю.. Это как-то надо скормить опции Cmake/ебилд править или ещё что?

Перед компиляцией

Перед компиляцией

export OPENCV_CPU_DISABLE="AVX2,AVX,FP16"

не так ли?.. ;)

Не знал, что это в Cmake

Не знал, что это в Cmake передастся. Спасибо, попробую, доложусь.

Увы. Не сработало, добавлял так же через запятую и POPCNT. Результат тот же.
Но вот почему проходит проверка на POPCNT перед компиляцией, а когда скомпилится уже нет?

Возможно запуск Cmake

Возможно запуск Cmake происходит в новой среде/сессии.
Смотри ебилд подправь там, если что...

В общем, я так и не догнал

В общем, я так и не догнал куда конкретно нужно прописать, чтоб взлетело. :( Может в случае с ебилдом надо как-то по особому.
grep'ал на наличие такой переменной исходники распакованные, чё-то не нашлось.

P.S. Помогло пересобрать с -march=x86-64. Хотя решение не лучшее конечно.

/

Diversant написал(а):
Помогло пересобрать с -march=x86-64. Хотя решение не лучшее конечно.

Это не решение, а workaround и повод заглянуть на bgo.

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".