Perché opencv non usa tutti i core dopo l'aggiornamento a Mavericks?

3

Sto eseguendo un comando intensivo della CPU su Mavericks (Opencv_traincasscade). Sotto Mountain Lion il processo usava utilizzare tutti e 8 i core fino in fondo. Tuttavia, dopo l'aggiornamento, scende a 1 core dopo un breve periodo di tempo.

Questo potrebbe essere un pisolino? C'è qualcosa che posso fare per risolvere questo problema?

    
posta Robert 26.05.2014 - 08:49
fonte

2 risposte

7

Essere in grado di utilizzare più core o thread dipende dal processo. Questo non è AppNap o OS X che causa la modifica.

Il tuo processo, opencv_traincascade , può essere limitato da risorse dopo pochi istanti e quindi ridotto ad accodare attività mentre attende l'accesso al disco o un'altra risorsa limitata.

In questo caso potrebbe essere necessario passare a una build diversa di OpenCV:

Note that opencv_traincascade application can use TBB for multi-threading. To use it in multicore mode OpenCV must be built with TBB.

Installazione di OpenCV con TBB tramite brew :

brew install opencv --with-tbb
    
risposta data 26.05.2014 - 09:13
fonte
1

Graham Miln era corretto - l'installazione di OpenCV era sbagliata.

Per verificare questo :

otool -L /usr/local/lib/libopencv_core.2.4.9.dylib
# Look for libtbb.dylib in the response,
# if missing you need to reinstall with tbb.

Per risolvere il problema (supponendo che tu abbia installato con homebrew):

brew uninstall opencv
brew info opencv # This will tell you about other flags you might be interested in.
brew install opencv --with-tbb  # Simples! :)
    
risposta data 26.05.2014 - 18:57
fonte

Leggi altre domande sui tag