2015-10-04 1 views
2

Je suis récemment passé à Mac OS à partir de Linux. J'ai besoin de BLAS et LAPACK pour faire des calculs. En vérifiant Wikipedia de BLAS, j'ai appris que ces deux bibliothèques ont été implémentées sous Mac OS. Cependant, il est dit queQuelle est la différence (s'il y en a) entre BLAS/LAPACK sous Mac OS et BLAS/LAPACK d'origine?

Le cadre d'Apple pour Mac OS X et iOS, qui comprend des versions à l'écoute de BLAS et LAPACK. (https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)

Alors, quelle est la différence entre le MAC BLAS/LAPACK et ceux d'origine? (J'ai vérifié les références référencées dans wikipedia, mais je n'ai pas trouvé d'informations sur la différence.)

Répondre

4

Il existe de nombreuses implémentations de BLAS et LAPACK, il n'y a pas non plus de version Linux unique. Il y a une spécification de l'interface des routines et une implémentation de référence sur netlib.org, mais cette implémentation de référence n'est pas axée sur les performances maximales sur une plateforme particulière (CPU, OS ...). Donc, ce que fait la bibliothèque Mac, c'est qu'elle a son propre code pour faire une partie du calcul, qui est probablement plus rapide que la référence. Il peut être programmé dans un langage de programmation différent du code Fortran de référence.

Il existe de nombreuses autres implémentations que vous pouvez essayer: Intel MKL, ATLAS, GotoBLAS, OpenBLAS, la bibliothèque Sun Performance, Cray Scientific Bibliothèques et autres. Souvent, ils sont écrits en C ou dans le langage d'assemblage pour un CPU particulier. La fonctionnalité la plus importante qu'Apple annonce pour son framework Accelerate et le vecLib (qui contient le BLAS) sont les instructions d'utilisation optimisée du vecteur (SIMD). C'est ce que toutes les autres versions essaient aussi de faire. Pour les différences réelles par rapport aux autres implémentations, il serait nécessaire d'étudier le code source qui est souvent indisponible (au moins pour les bibliothèques commerciales).