Я скомпилировал GSL и OpenBLAS из исходного кода со всеми параметрами по умолчанию в обоих случаях. Мои библиотеки GSL установлены в / usr / local / lib и в OpenBLAS в / opt / OpenBLAS / lib. Как мне использовать OpenBLAS с GSL в C ++?
Основная причина, по которой я это делаю, заключается в том, что OpenBLAS использует все ядра, которые Atlas не использует в конфигурации по умолчанию. Моя главная цель — умножить две большие матрицы (10000 x 10000) и выполнить двумерные свертки. Есть ли лучшая альтернатива OpenBLAS или GSL для этого?
Я использую:
Я экспериментировал с тем же в Октаве с OpenBLAS. Получу ли я значительное улучшение производительности при использовании C ++?
Я хотел бы использовать существующую библиотеку линейной алгебры, как броненосец. AFAIK это оборачивает вашу реализацию BLAS для умножения матриц. Мне это нравится, потому что он предоставляет вам синтаксис, очень похожий на синтаксис в Matlab или Octave.
Другие библиотеки линейной алгебры, такие как Eigen, также сделают эту работу.
Но я не ожидаю, что они будут работать (намного) лучше, чем Octave или Matlab, пока вызов базовой библиотеки остается прежним. Также оформить заказ почему Matlab так быстро а также как распределяется броненосец.
Других решений пока нет …