Intel MKL vs. AMD Math Core Library - PullRequest
       30

Intel MKL vs. AMD Math Core Library

22 голосов
/ 29 октября 2009

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

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

Ответы [ 3 ]

12 голосов
/ 31 октября 2009

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

• Шейн Кордер, Advanced Clustering, (также представленный HPCWire: Benchmark Challenge: Nehalem Versus Istanbul): «В нашем недавнем тестировании и благодаря опыту реального мира мы обнаружили, что компиляторы Intel и Intel Math Kernel Library (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 ГФ по сравнению с Стамбулом 2435 2,6 ГГц при 99,4 ГФ; Стамбул только на 34% быстрее, несмотря на 50% больше ядер]

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

3 голосов
/ 21 июня 2010

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

2 голосов
/ 29 октября 2009

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

...