Відмінність продуктивності між ATLAS та MKL?


31

ATLAS - це безкоштовна заміна BLAS / LAPACK, яка налаштовується на машину під час компіляції. MKL - комерційна бібліотека, що постачається Intel. Чи порівнянні ці дві бібліотеки щодо продуктивності, чи MKL має перевагу для виконання деяких завдань? Якщо так, то які?


Відповіді:


18

MKL (від Intel) оптимізовано для процесорів Intel, і, ймовірно, у багатьох випадках там "переважає". Але він також "відомий" вибором "найгірших" кодових шляхів для процесорів AMD, як описано тут .


13

БЛАС не є монолітним. BLAS1 і BLAS2 обмежені пропускною здатністю пам’яті, і ви не можете багато чого зробити, щоб пришвидшити їх за межі очевидного (розгортання циклу, блокування кеша для рівня 2). BLAS3 є цікавішим, і прототипним орієнтиром тут є матричне-матричне множення. Наскільки мені відомо, GOTOBlas завжди був явним переможцем тут, дивіться, наприклад, це порівняння або це і це обгрунтування .

Зараз це вже роки, і у нас є проект BLIS . Це найкраща безкоштовна альтернатива MKL.


4
Метт правий, але GotoBLAS вже не розробляється. Він все ще працює досить добре для деяких сучасних процесорів, але MKL, безумовно, перевершить його для DGEMM на майбутніх процесорах, якщо цього ще не зробити. Наприклад, ми не тестували його на Westmere, але я не здивувався б, якщо GotoBLAS вже програв.
Білл Барт

2
Доктор Гото придбав M $. Смуток. . .
meawoppl

2
OpenBLAS - це проект із відкритих джерел, розроблений від GotoBLAS. github.com/xianyi/OpenBLAS
ShadowWarrior

Goto працює на MKL зараз. Більше немає смутку :-)
Jeff

6

Профіль, не спекулюйте! (також працює як "Бенчмарк, не спекулюйте!" )

Не можна сказати нічого загального, це сильно залежить від завдань, які ви хочете виконати (наприклад, BLAS 1/2/3) та обладнання, яке ви виконуєте (очевидно, Intel MKL не працює на процесорах ARM, для Наприклад, але навіть серед процесорів Intel можна очікувати відмінностей у продуктивності).


Ще одна річ, на яку я думаю, варто згадати, що AMD пропонує також математичні бібліотеки, налаштовані на їхні процесори, AMD Core Math Library . Він не такий багатий на функції, як MKL від Intel, але він включає BLAS.


Правда. Тут є безліч анекдотичних доказів (і фактичного профілювання) для резервного копіювання інших відповідей тут (про що свідчать посилання). Однак ваш пробіг може відрізнятися, і це завжди допомагає профайлу знати, що ви праві.
Джефф Оксберрі

1
Але це прикро на профілі, оскільки MKL становить $ 499. Однак вони пропонують одномісячне випробування
Ліндон Уайт

@LyndonWhite це все одно? Здається, що на сторінці завантаження показано, що вона безкоштовна
Luciano

Так, я вважаю, що це зараз безкоштовно, я бачу, що багато людей зараз ним користуються.
Ліндон Уайт

6

Попередні відповіді на це питання охопили більшість важливих моментів, але я хочу додати один коментар щодо цього:

чи має MKL перевага для деяких завдань?

Команда MKL в змозі дізнатися про майбутні набори інструкцій Intel та їх реалізацію в конкретних процесорах. Крім того, вони мають доступ до фірмових тренажерів процесорів та до виробничого обладнання, яке ніхто за межами Intel не може використовувати. Таким чином, MKL має перевагу щодо ступеня знань про майбутні продукти та коли вони отримують ці знання. Таким чином, це не повинно бути занадто дивним, якщо вони виробляють кращі реалізації BLAS, ніж будь-хто інший, принаймні на початку життя продукту з новими можливостями.

З іншого боку, Intel була досить відкрита щодо набору інструкцій для AVX-512 та надала емулятор розробки програмного забезпечення Intel® (SDE), що дозволяє розробникам емулювати інструкції AVX-512 щодо процесорів, які не підтримують їх. Через це буде не надто дивно, якщо для процесорів Intel, які підтримують AVX-512 на початку життя цих продуктів, доступні якісні реалізовані програми з відкритим кодом BLAS.

Звичайно, наскільки різницею є детальна інформація про конкретний процесор та основи щільних алгоритмів лінійної алгебри, не вирішена повністю. Наступна цитата вирішує це питання краще, ніж я можу:

У теорії немає різниці між теорією та практикою. Але, на практиці, є.

Повне розкриття інформації: я працюю в Intel.


Чи є шанс, щоб MKL було відкрито?
Рой

З якою метою? MKL вже безкоштовний, як у пиві. Набагато більша освітня цінність у читанні вихідного коду BLIS. Якщо ви хочете прочитати збірку, спробуйте OpenBLAS.
Джефф

1

Я думаю, що головна відмінність бібліотек постачальників BLAS від бібліотек BLAS з відкритим кодом - це час, який потрібен відкритому коду для підтримки найновіших апаратних функцій.

Оскільки BLAS широко використовується, постачальник цікавить підтримку найновіших апаратних функцій. Наприклад, розглянемо розширення векторів AVX від Intel, які були представлені з процесором "піщаний міст" з січня 2011 року. MKL мала підтримку AVX ще до появи процесора, але лише нещодавно ATLAS (кінець 2011 р.) Почав розкручувати підтримку AVX .

Крім того, якщо вашій програмі дійсно потрібна продуктивність і перед тим, як розпочати тестування різних бібліотек BLAS або почати злому, щоб оптимізувати що-небудь: профіліруйте свою програму. Загальноприйнято, що людська інтуїція не дуже ефективний провісник прогнозування, принаймні, я знаю, що це не так! Тож замість того, щоб витрачати час на випадковий вибір, оптимізуйте свою програму та систематично підходьте до кожного вузького місця.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.