2015-10-04 4 views
2

Недавно я перешел на Mac OS из Linux. Мне нужно BLAS и LAPACK, чтобы сделать некоторые вычисления. Проверяя Википедию BLAS, я узнал, что эти две библиотеки реализованы в Mac OS. Тем не менее, говорится, чтоВ чем разница (если есть) между BLAS/LAPACK в Mac OS и оригинальным BLAS/LAPACK?

Рамка Apple для Mac OS X и iOS, которая включает в себя настроенные версии BLAS и LAPACK. (https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)

Итак, в чем разница между MAC BLAS/LAPACK и оригинальные? (Я проверил ссылки, упомянутые в википедии, но я не нашел информации об этой разнице.)

ответ

4

Существует много реализаций BLAS и LAPACK, нет ни одной версии Linux. Существует спецификация интерфейса подпрограмм и эталонной реализации на netlib.org, но эта эталонная реализация не фокусируется на максимальной производительности на конкретной платформе (CPU, OS ...).

Итак, что делает библиотека Mac, это то, что у нее есть свой собственный код для выполнения некоторых вычислений, который, вероятно, быстрее, чем ссылочный. Он может быть запрограммирован на другом языке программирования, кроме справочного кода Fortran.

Есть много других реализаций, которые вы могли бы попробовать: Intel MKL, ATLAS, GotoBLAS, OpenBLAS, Sun Performance Library, Cray Scientific Libraries и другие. Часто они написаны на C или на языке ассемблера для конкретного процессора.

Самая важная функция, которую Apple рекламирует для своей инфраструктуры Accelerate, а vecLib (который содержит BLAS) - это оптимизированное использование векторных (SIMD) инструкций. То, что все другие версии также пытаются сделать. Для реальных отличий от других реализаций необходимо изучить исходный код, который часто недоступен (по крайней мере для коммерческих библиотек).