Я успешно использовал броненосец в сочетании с OpenBLAS в магистерской диссертации Убунту 14.04 64 бита (как с установленным Armadillo, так и без установки). Производительность была очень впечатляющей — мой код состоял в основном из базовых матричных операций. Все это было выполнено с использованием всех доступных потоков.
Сейчас я пытаюсь использовать Armadillo с OpenBLAS на Windows 7 64-битный компьютер в Visual Studio 2013. Я нашел онлайн-справку и успешно добавил PTHREAD библиотека. Сам код работает, но производительность низкая. Я тестирую три основных операции, используя 1000×1000 матрица — сложение, умножение и поэлементное умножение. Из этих трех только классическое умножение использует всю мощность процессора. Два других используют 25% CPU, что означает, что они работают в одном потоке.
Я не допускал такого поведения в случае с Ubuntu. У кого-нибудь есть предложения? Я не видел ни одной ссылки, где у кого-то была похожая проблема.
Вы уверены, что OpenBLAS использует несколько потоков в Ubuntu для сложения и поэлементного умножения? Интуитивно я ожидал бы, что эти операции будут ограничены BW, а не FPU, так что я думаю, что многопоточность не сильно поможет?
Других решений пока нет …