4 votos

¿Por qué opencv no está usando todos los núcleos después de actualizar a Mavericks?

Estoy ejecutando un comando intensivo de la CPU en Mavericks (Opencv_traincasscade). Bajo el Lion de montaña el proceso utilizado para usar todos los 8 núcleos completamente bien. Sin embargo después de actualizar cae a 1 base después de un corto tiempo.

enter image description here

¿Podría ser esta siesta de app? ¿Hay algo que pueda hacer para solucionarlo?

7voto

Steve Evans Puntos 155

Ser capaz de utilizar varios núcleos o hilos es dependiente del proceso. Esto no es AppNap o OS X causando el cambio.

Su proceso, opencv_traincascade, puede ser un recurso limitado, después de unos momentos y así reducida a la cola de tareas de espera para el acceso a disco o a otro recurso limitado.

En este caso puede que tenga que cambiar a una generación diferente de OpenCV:

Tenga en cuenta que opencv_traincascade aplicación puede utilizar TBB para multi-threading. Para uso en multinúcleo modo de OpenCV debe ser construido con la TBB.

La instalación de OpenCV con TBB a través de brew:

brew install opencv --with-tbb

1voto

Robert Puntos 133

Graham Miln era correcta - la instalación de OpenCV estaba equivocada.

Para comprobar esto:

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.

Para fijar este (suponiendo que ha instalado 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! :)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X