Mengapa opencv tidak menggunakan semua core setelah memutakhirkan ke Mavericks?

4

Saya menjalankan perintah intensif CPU pada Mavericks (Opencv_traincasscade). Di bawah Mountain Lion proses yang digunakan untuk menggunakan semua 8 core sepanjang jalan. Namun setelah meningkatkannya turun ke 1 inti setelah waktu yang singkat.

masukkan deskripsi gambar di sini

Mungkinkah ini tidur siang aplikasi? Apakah ada yang bisa saya lakukan untuk memperbaikinya?

Robert
sumber

Jawaban:

7

Mampu menggunakan multi-core atau utas tergantung pada prosesnya. Ini bukan AppNap atau OS X yang menyebabkan perubahan.

Proses Anda opencv_traincascade,, mungkin dibatasi sumber daya setelah beberapa saat dan dengan demikian dikurangi menjadi tugas antrian saat menunggu akses disk atau sumber daya terbatas lainnya.

Dalam hal ini Anda mungkin perlu beralih ke build OpenCV yang berbeda:

Perhatikan bahwa aplikasi opencv_traincascade dapat menggunakan TBB untuk multi-threading. Untuk menggunakannya dalam mode multicore, OpenCV harus dibangun dengan TBB.

Menginstal OpenCV dengan TBB melalui brew:

brew install opencv --with-tbb
Graham Miln
sumber
Terima kasih atas jawabannya, saya pasti akan mencobanya. Namun, ada 2 alasan mengapa saya pikir itu mungkin tidak terjadi. Pertama, CPU mencapai 800% selama beberapa menit ketika dimulai, yang menunjukkan bahwa OpenCV mampu menggunakan semua core. Kedua saya tidak pernah mengalami masalah ini di Mountain singa (namun, saya tidak bisa 100% yakin jika itu adalah bangunan yang sama). The -modeparameter terkait dengan rotasi fitur deteksi tidak core saya percaya.
Robert
Sebenarnya saya mengambilnya kembali! Anda benar: D Saya akan menjawab untuk kelengkapan.
Robert
1

Graham Miln benar - instalasi OpenCV salah.

Untuk memverifikasi ini :

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.

Untuk memperbaiki ini (dengan asumsi Anda menginstal dengan 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! :)
Robert
sumber
1
Daripada menjadi jawaban yang terpisah, pertimbangkan untuk menambahkan ini ke pertanyaan Anda.
Graham Miln