Вопрос

Есть ли у кого-нибудь опыт программирования как для Библиотека математического ядра Intel и тот Библиотека математических ядер AMD?Я создаю персональный компьютер для высокопроизводительных статистических вычислений и обсуждаю, какие компоненты купить.Привлекательность библиотеки AMD Math Core заключается в том, что она бесплатна, но я работаю в академических кругах, поэтому MKL стоит не так уж дорого.Но мне было бы интересно услышать мысли по:

  1. Что обеспечивает лучший API?
  2. Что обеспечивает более высокую производительность в среднем на доллар, включая затраты на лицензирование и оборудование.
  3. Является ли AMCL-графический процессор фактор, который я должен учитывать?
Это было полезно?

Решение

Intel MKL и ACML имеют похожие API, но MKL обладает более богатым набором поддерживаемых функциональных возможностей, включая BLAS (и CBLAS) / LAPACK / FFT / Векторную и статистическую математику / Разреженные прямые и итерационные решатели / Разреженные BLAS и так далее.Intel MKL также оптимизирован как для процессоров Intel, так и для AMD и имеет активный форум пользователей, к которому вы можете обратиться за помощью или рекомендациями.Независимая оценка двух библиотек опубликована здесь:(http://www.advancedclustering.com/company-blog/high-performance-linpack-on-xeon-5500-v-opteron-2400.html)

• Шейн Кордер, Продвинутая кластеризация (также поддерживается HPCwire:Контрольная задача:Нехалем против Стамбула):“В ходе нашего недавнего тестирования и на основе реального опыта мы обнаружили, что компиляторы Intel и библиотека ядра Intel Math (MKL) обычно обеспечивают наилучшую производительность.Вместо того чтобы просто остановиться на инструментарии Intel, мы попробовали различные компиляторы, в том числе:Intel, компиляторы GNU и Portland Group.Мы также протестировали различные библиотеки линейной алгебры, включая:MKL, AMD Core Math Library (ACML) и libGOTO из Техасского университета.Все тесты показали, что мы можем достичь высочайшей производительности при использовании как компиляторов Intel, так и библиотеки Intel Math Library - даже в системе AMD, - поэтому они были положены в основу наших тестов ”. [Бенчмарковое тестирование показало 4-ядерный процессор Nehalem X5550 с частотой 2,66 ГГц и частотой 74,0 GFs по сравнению сСтамбул 2435 2,6 ГГц при частоте 99,4 GFs;Стамбул всего на 34% быстрее, несмотря на увеличение количества ядер на 50%]

Надеюсь, это поможет.

Другие советы

На самом деле, в ACML есть две версии подпрограмм LAPACK. Те, у которых нет завершающего подчеркивания (_), являются подпрограммами C-версии, которые, как сказал Виктор, не требуют массивов рабочих пространств, и вы можете просто передавать значения вместо ссылок на параметры. Те, что с подчеркиванием, однако, являются просто ванильными процедурами Фортрана. Сделайте " свалку / экспорт " на libacml_dll.dll и вы увидите.

Я использовал AMCL для подпрограмм BLAS / LAPACK, так что это, вероятно, не ответит на ваш вопрос, но я надеюсь, что это кому-нибудь пригодится. Сравнивая их с ванильным BLAS / LAPACK, их производительность была в 2-3 раза лучше в моем конкретном случае использования. Я использовал его для плотных несимметричных комплексных матриц, как для линейных решений, так и для вычислений собственных систем. Вы должны знать, что объявления функций не идентичны ванильным процедурам. Это потребовало значительного количества макросов препроцессора, чтобы позволить мне свободно переключаться между ними. В частности, все подпрограммы LAPACK в AMCL не требуют рабочих массивов. Это очень удобно, если AMCL - единственная библиотека, которую вы будете использовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top