Journal Sortie de OpenBLAS release-v0.1alpha2

Posté par (page perso) . Licence CC by-sa
15
24
juin
2011

Bonjour,

Je sais que c'est pas trop le genre de signaler à tout bout de champ les sorties de projets non stables mais là c'est, mine de rien, une sortie importante. D'ailleurs cette mise à jour aurait pu s'appeler OpenBLAS version 3.0.

Pour ceux qui ne savent pas ce qu'est OpenBLAS : c'est une bibliothèque mathématique optimisée de BLAS. À l'origine cette bibliothèque a été écrite par Kazushige Goto et a fait l'objet d'une publication [1] détaillant les principes de la méthode. Cette bibliothèque étant développée à l'université du Texas à Austin la licence de celle-ci n'était pas vraiment libre. C'est vers 2010 (pas sûr de la date) que la bibliothèque passe sous Licence BSD. Notre moteur de recherche favori donne ceci : License of GotoBLAS was changed to BSD. On ne peut pas être sûr de la date officiel puisque au moment du départ de K. Goto de l'université du Texas la bibliothèque n'était pas encore officiellement sous licence BSD.

Depuis ce moment là, aucun développement n'était fait il semblerait. La mailing list voyant des messages par moment mais sans vraiment de réponses la suite logique a été de faire un fork de celle-ci. Au 24 janvier 2011, xianyi a donc créé OpenBLAS sur github.

La version qui a été utilisée est celle disponible sur le site du Texas : GotoBLAS2-1.13_bsd. Comme vous pouvez le voir le nom n'est pas super clair puisque la bibliothèque s'appelle GotoBLAS2 en version 1.13 mais le passage entre GotoBLAS et GotoBLAS2 n'est pas non plus très bien explicite (d'où le numéro de version 3.0 ?). J'ai pas envie de chercher beaucoup plus loin sur un hypothétique numéro de version. Le choix est de dire que le numéro de version est 0.1 alpha2.

Depuis le 24 janvier le dépôt est pas mal actif avec des corrections qui n'ont pas été faites depuis que le projet a été laissé en l'état par K. Goto. En particulier, un début de support des processeurs Loogson a été apporté mais aussi des corrections sur les détections de l'environnement et des processeurs.

Voila c'était pour laisser une trace de cette sortie (qui date d'hier) mais pour ceux qui auraient besoin de se passer des bibliothèques MKL c'est un très bon compromis.

[1] Goto, Kazushige; van de Geijn, Robert A. (2008), "Anatomy of High-Performance Matrix Multiplication", ACM Transactions on Mathematical Software 34 (3): Article 12, 25 pages, doi:10.1145/1356052.1356053

  • # Bench + debian

    Posté par (page perso) . Évalué à 5.

    Pour avoir une idée des performances, je vous invite à aller consulter un papier de Dirk Eddelbuettel. L'overhead induit par R étant constant, les benchmarks de libs d'algèbre linéaire sont pertinents (à noter que des logiciels comme Scilab ou Octave ont les mêmes problématiques):
    http://cran.r-project.org/web/packages/gcbd/vignettes/gcbd.pdf

    Pour info, cette version de Openblas est disponible dans Debian même si un bug dans la version 64 bits fait que openblas n'est pas (encore) disponible dans l'archive.

  • # Bench

    Posté par . Évalué à 3.

    http://www.ats.ucla.edu/clusters/common/software/libraries/blas_benchmark.htm

    En simple précision, Goto est nettement en tête.
    Goto est le meilleur avec 7000 au lieu de 5500 pour MKL

    • [^] # Re: Bench

      Posté par . Évalué à 2.

      Qui utilise les BLAS en simple précision ?

      Enzo Bricolo

      • [^] # Re: Bench

        Posté par . Évalué à 2.

        Facteur 2 en empreinte mémoire, Facteur 2 en vitesse. En calcul scientifique, et si ton algorithme est peu sensibles aux dernières décimales, il y a un intérêt. Note que ça vaut toujours la peine de tester les deux, selon les implémentations il peut arriver que simple-précision devienne plus lent. Voir par exemple le rapport de stage suivant :
        http://lab1-260.googlecode.com/svn-history/r47/branches/lab2/Lab2Report.pdf

        • [^] # Re: Bench

          Posté par . Évalué à 1.

          Le problème qui m'intéresse, c'est plus la dispersion que la
          vitesse. Nonobstant, ton commentaire est intéressant.

          "si ton algorithme est peu sensible aux dernières décimales"

          Ma question porte sur la vraie vie plutot que sur les benchs.
          Dans les cas que j'ai rencontré, j'ai toujours eu besoin de
          précision.
          y'a que les rigolos de la météo qui se cachent
          derrière un "indice de confiance".

          Enzo Bricolo

          • [^] # Re: Bench

            Posté par . Évalué à 2.

            Et dans la vraie vie, y'a plein de physiciens, numériciens, etc., qui veulent à fond de la double précision (souvent à raison), et puis un jour s'aperçoivent que ben, s'ils « omettaient » certains facteurs — genre une décimale, disons celle des dizaines de milliers, est fixe — du coup ils auraient besoin de moins de bits pour coder leurs nombres, et donc le risque d'imprécision baisserait mécaniquement, au point que la simple précision serait suffisant (histoire vécue).

            La vraie vie, c'est aussi l'infographie, qui certes se fait le plus souvent via une carte spécialisée, mais parfois aussi sur des super-calculateurs (quand il s'agit de rendu mais pas en temps réel).

          • [^] # Re: Bench

            Posté par . Évalué à 4.

            Les rigolos de la météo ont des algorithmes qui divergent exponentiellement avec le temps. Le passage à double ou quadruple précision leur permet de simuler plus loin dans le temps à indice de confiance constant. En chimie quantique, tu simules jusqu'à convergence de la solution selon un critère donné (la position d'équilibre de deux atomes est trouvée quand la force entre les deux est inférieure à un certain seuil). Une convergence à 10⁻⁵ est souvent suffisante, et la simple-précision te la donne en deux fois moins de temps.

            • [^] # Re: Bench

              Posté par . Évalué à 1.

              Ca m'a l'air intéressant tous ces liens. Je vais les éplucher un peu.

              Ma remarque sur la météo était en mode troll on mais çà ne s'est pas
              affiché correctement.
              Les météomanes sont rigolos quand ils donnent un indice de confiance de 2/5.

              Enzo Bricolo

            • [^] # Re: Bench

              Posté par (page perso) . Évalué à 2.

              Reste le problème de se retrouver sur le fil du rasoir. Dans certains cas le calcul en simple précision fonctionnera aussi bien et plus vite. Dans d'autres il donnera juste un résultat non pertinent.

              C'est en particulier le cas des méthodes de la chimie-quantique citées ci-avant. Typiquement les valeurs propres et éléments des matrices sont de l'ordre de la centaine ; alors que les éléments hors diagonaux et les différences de valeur propre qui conduisent à l'analyse du système sont plutôt de l'ordre de 1e-5. Parfois un calcul en simple précision peut fonctionner. Mais ce n'est vraiment pas gagné d'avance.

              (Ceci amène à deux remarques. D'une part beaucoup d'avancées en chimie quantique proviennent justement des efforts fait pour ré-exprimer les problèmes de sorte que les grandeurs importantes soient moins disproportionnées aux autres éléments. D'autre part — attention ceci est une remarque^w^w un troll de physicien — tout le monde sait bien que les codes de chimie quantique reposent mathématiquement sur du vent : leurs bases ne sont pas systématiques, il n'existe pas de preuve de convergence … Ce à quoi des chimistes répondraient sans doute que ça marche tout de même bien mieux que les méthodes des physiciens qui font tout autant défaillir les matheux.)

      • [^] # Re: Bench

        Posté par . Évalué à 2.

        Moi sur un programme d'analyse d'image (ça ne viens pas du monde professionnel mais bon), j'avais besoin de travailler sur des matrices de flottants, mais une précision au delà du millième était inutile.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # C'est la revanche de Goto

    Posté par . Évalué à 1.

    Texte du lien

    ... goto n’est plus guère appréciée des programmeurs modernes, car elle rend souvent les programmes plus difficiles à comprendre et à maintenir ...

    Fallait pas le charrier

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.