Подтвердить что ты не робот

Intel MKL против AMD Math Core Library

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

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

Ответ 1

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

• Shane Corder, 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 Compilers, так и Intel Math Library - даже в системе AMD - поэтому они были использованы в качестве основы наших тестов". [Тесты производительности показали 4-ядерный Nehalem X5550 2.66GHz при 74.0GFs против Стамбула 2435 2.6GHz при 99.4GFs; Стамбул только на 34% быстрее, несмотря на то, что на 50% больше ядер]

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

Ответ 2

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

Ответ 3

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