Journal l'autovectorisation est en route !

Posté par  (site web personnel) .
Étiquettes : aucune
0
21
mai
2004
Dans un précédent journal ( http://linuxfr.org/~patrick_g/12690.htm(...) ) je demandais si l'unité vectorielle des processeurs PPC750 (le G4) et PPC970 (le G5) était prise en compte....la réponse étant en gros : non car personne ne s'est préoccupé d'écrire le code assembleur qu'il faut dans les bibliothèques.

Pour moi je considère que c'est une lacune gravissime de GNU/Linux par rapport à OSX qui utilise beaucoup l'unité vectorielle (dans Quicktime + dans l'interface Quartz ).

Il semble que cette lacune va être comblée dans un futur pas trop lointain car une des conférences du sommet GCC 2004 sera consacrée à l'autovectorisation du code !
Plus besoin d'optimiser manuellement ! (même si cela restera sans doute bien plus efficace).
Il faudra voir à l'usage car (selon divers échos) l'auto-vectoriseur du compilo d'Intel n'est pas terrible et il faudra que GCC fasse mieux (le tree-SSA aidera).

Bien sûr c'est un dev d'IBM qui s'occupe de cela (ils veulent rentabiliser les transistors dépensés dans leur unité vectorielle et ils ont bien raison).

l'annonce :
http://www.gccsummit.org/2004/view_abstract.php?content_key=27(...)
  • # Commentaire supprimé

    Posté par  . Évalué à 5.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # La magie...

    Posté par  . Évalué à 9.

    Juste comme ca, GNU/Linux doit deja utiliser l'unite vectorielle dans les bibliotheques de codec (ffmpeg, ...). Peut-etre est-il aussi present dans le code de ton driver graphique.

    Mais il faut bien voir que le gain, a part dans les filtres photoshop de benchmark, est tres peu important et cela pour pas mal de rainson. Principalement parce qu'il y a souvent peu de parallelisme dans un code a part lors de calcul mathematique intensif. Ainsi meme en crypto le vectoriel ne sert que quand tu veux casser du code (en cassant plusieur clef en simultannee), mais pas lorsque tu etablies une session SSL avec ton serveur preferre.

    Enfin, il faut bien voir qu'aujourd'hui, une grande partie du code qui pourrait etre vectorise, se fait au niveau du materiel (carte son, carte 3D, ...). Il y a de moins en moins de place pour utiliser ces technos a part dans les codecs et la, vu le chemin que prend NVidia et ATI, il y a des chances que cela soit bientot gere principalement en hardware aussi.

    Il faut se mefier un peu de l'argumentaire marketing qui nous vend l'altivec comme si c'etait le saint grale (meme remarque pour MMX et consort). Il y a pas mal de cout a utiliser la vectorisation dans du code, tout d'abord, il faut transformer tes donnees en paquet pour qu'elle puisse etre traite, puis enfin les desempaqueter. Forcement, il y a un surcout.

    Ce qui est drole, c'est quand utilisant ICC, on se rend compte partiellement du probleme, la plus part du temps, seul les boucles d'initialisations sont vectorisable (pas de conditions, une repetition evidente, peu ou pas de phase d'empaquetage/desempaquetage, ...).

    Personnellement, je vois ca plus comme du fignolage que comme quelque chose qui va augmenter tes perfs par un facteur 4...
  • # tout le monde n'a pas les moyen pour un mac

    Posté par  . Évalué à 2.

    c'est surtout parce que très peu de personnes utilisent GNU/Linux sur de telles architectures, pour une raison de prix (et d'ailleurs quelqu'un s'est il déjà fait rembourser son mac OS)

    c'est con, mais c'est la loi du marché ... beaucoup de développeurs travaillent déjà sur des bécanes modestes, tu ne vas pas non plus leur demander d'acheter un mac 2/3x plus cher, et encore moins extensible.

    tu veux du support PPC amélioré? participe, ou prête ta machine à des développeurs (tu leur files un compte)
    • [^] # Re: tout le monde n'a pas les moyen pour un mac

      Posté par  . Évalué à 2.

      C'est aussi peut-être que le modèle apple qui est populaire (malgré son prix 5 ou 6 fois trop élevé - tant qu'on est à troller sur les prix d'apple, autant y aller carrément, 2 ou 3x, ça fait petit joueur ;-p ) dans le monde du libre et de l'opensource, c'est manifestement l'ibook blanc.
      Et cet hibouk blanc, a pendant longtemps été équipé du PPC750, qui contrairement à ce qu'écrit plus haut notre cheerleader attitrée de l'architecture powerpc, est communément appelé "G3" et ne possède strictement aucune unité vectorielle. Ce n'est que depuis assez récemment qu'il utilise un processeur de la série 74xx communément appelé "G4".

      En passant quelques petites remarques.
      - La vectorisation automatique, c'est pas forcément la potion magique ; on verra bien ce que ça donnera quand ça sera largement utilisé (si ça l'est), mais en attendant, ceux qui veulent pas aller au devant d'une grosse déception feraient bien de ne pas avoir des attentes trop fortes.
      - Contrairement à l'unité vectorielle des x86 et clones variés, pour lesquels il n'est pas très réaliste de se passer de l'asm, les capacités de calcul vectoriel des ppc peuvent être exploitées raisonnablement en C. Du C bas niveau, impliquant une bonne connaissance de l'architecture cible, mais du C quand même. C'est là l'un des gros avantages des ppc dans ce domaine.
      - Apple a certes investi beaucoup dans le calcul vectoriel (par nécessité essentiellement, suite au naufrage de la division semiconducteurs de Motorola) mais il n'est quand même pas utilisé _partout_ non plus, ça reste vachement centré sur le son/image/video/traitement du signal et cie.

      Pour finir je suis pas sûr que ça soit jouable de se faire "rembourser" Mac OS X, dans la mesure où Apple ne l'a pas acheté à une tierce partie comme c'est le cas avec les constructeurs qui fournissent windows. Ils pourront toujours objecter qu'il est "gratuit" avec une machine neuve.
      • [^] # Re: tout le monde n'a pas les moyen pour un mac

        Posté par  (site web personnel) . Évalué à 2.

        contrairement à ce qu'écrit plus haut notre cheerleader attitrée de l'architecture powerpc

        ok pour l'erreur....c'est vrai que le G4 est un 74XX.

        Par contre je suis moyen content pour le qualificatif de "cheerleader attitrée de l'architecture powerpc".
        je croyais que GNU/Linux et le libre en général c'était la liberté de choisir aussi son architecture (sans encourir les lazzis des autres).

Suivre le flux des commentaires

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