2015-11-24 5 views
1

Это page из IMSL говоритЧто такое высокопроизводительная версия LAPACK и BLAS?

Для получения улучшенных характеристик мы рекомендуем связывающую с высоким версиями производительность LAPACK и BLAS, если таковые имеются.

Что такое высокопроизводительные версии LAPACK и BLAS?

+0

например, библиотека Atlas, OpenBlas, Intel MKL – ztik

+0

@ctheo Большое спасибо – user15964

+0

@ctheo и как они сравниваются со стандартным Lapack и Blas? Они изменили исходный код? Будут ли они менее надежными, чем стандартный Lapack и Blas? – user15964

ответ

2

Есть много хороших реализаций, чтобы выбрать из:

  1. Intel MKL, вероятно, лучше всего на машинах Intel. Это не бесплатно, так что это может быть проблемой.
  2. По их benchmark, OpenBLAS сравнивает очень хорошо с Intel MKL и свободно
  3. Eigen также вариант и имеет довольно большой (хотя и старый) benchmark показывает хорошую производительность на небольших матриц (хотя технически это не капля в библиотека BLAS)
  4. ATLAS, OSKI, POSKI примеры автонастройка ядер, которые будут претендовать на работу на многих архитектурах

Вообще, это довольно трудно выбрать один из них без бенчмаркинга BECA использование:

  1. некоторые реализации лучше работают на разных типах матриц. Например Эйген лучше работает на матрицах с малым рангом (100s)
  2. некоторые из них оптимизированы для конкретных архитектур (например, от Intel)
  3. в некоторых случаях многопоточной библиотеки BLAS может конфликтовать с многопоточным приложением (например, OpenBLAS)
  4. Показатели разработчика могут иметь тенденцию подчеркивать случаи, которые лучше работают на их реализацию.

Я бы предложил выбрать одну или две из этих библиотек, которые применяются для вашего случая использования, и сравнить их для вашего конкретного приложения на вашей конкретной (или аналогичной) машине. Это довольно легко сделать even after compiling your code.

+0

Большое спасибо за предоставление богатой информации! – user15964