Есть ли какая-то польза от компиляции LAPACK из исходного кода по сравнению с установкой готового пакета из Ubuntu?

13

Я знаю, что ATLAS может оптимизировать себя для машины, на которой он компилируется, и, таким образом, максимальная выгода достигается компиляцией из исходного кода. Есть ли польза от компиляции LAPACK из исходного кода? Было бы намного проще просто установить готовый пакет.

OSE
источник
Возможно, стоит попробовать эту технику, чтобы понять, почему время тратится. Я обнаружил, что если я много работаю с матрицами небольшого размера, то библиотечные процедуры тратят более половины своего времени на классификацию флагов входных символов и другую входную классификацию, так что вы можете значительно ускориться за счет расширения библиотеки. с несколькими хорошо подобранными вручную кодированными процедурами.
Майк Данлавей

Ответы:

9

OpenBlas довольно быстрый, поэтому вы можете связать его с LAPACK. Вы пробовали предварительно скомпилированную версию LAPACK / BLAS от вашего поставщика CPU? Например, AMD ACML (бесплатно) или Intel MKL (бесплатно на Linux для некоммерческого и не академического использования)? Вам просто нужно распаковать и запустить установочный файл.

На мой взгляд, единственным преимуществом использования ATLAS является то, когда вы используете какой-то необычный процессор. В противном случае используйте один из поставщиков процессора. Также есть версии nVIDIA CUDA и AMD OpenCL, которые действительно потрясающие.

РЕДАКТИРОВАТЬ: помните, что вы всегда можете собрать пакет Ubuntu DEB из исходного кода, который обычно намного проще, чем компилировать программное обеспечение из исходного кода.

Страдания
источник
Я думаю, что я собираюсь пойти с вашим предложением и установить MKL. Также спасибо за совет по созданию пакетов DEB, я не знал, что это возможно.
OSE
2
Помните, что вам нужно настроить ld (компоновщик динамических библиотек, чтобы можно было найти эти библиотеки). BLAS и LAPACK от Intel MKL находятся в libmkl_rt.soфайле, обычно связанном с помощью:-L/opt/intel/mkl/lib/intel64 -lmkl_rt
Misery
2
Следует отметить, что некоммерческая лицензия Intel становилась все более и более ограничительной с каждым выпуском, и теперь они очень четко заявляют о том, что ее использование в академических целях не распространяется на нее, как только вы получаете деньги за свои исследования.
Кристиан Клэйсон
Да, это стоит упомянуть. Однако его можно протестировать бесплатно:] И если он окажется полезным, это не самая дорогая вещь в мире.
Несчастье
7

Пакет репозитория небезопасен для использования с потоками из-за способа его компиляции. Я сообщил об ошибке на форуме Lapack , но потребуется много времени, чтобы обходные пути или решения просочились в хранилище. Если вы сами его скомпилируете, обязательно добавьте «-frecursive» в gfortran.

Виктор Лю
источник
6

По моему опыту, лучший способ использовать blas / lapack в последних версиях ubuntu - это использовать упакованный openblas.

Что бы это ни стоило, я в основном использую blas / lapack через python numpy / scipy, а использование openblas ускоряет некоторые линейные алгебры примерно в 200 раз по сравнению со значением по умолчанию. Я пытался использовать пользовательский ATLAS, но это было огромной болью и не давало большого ускорения по сравнению с openblas, но, возможно, я делал это неправильно.

клипер
источник