Crunchez vos adresses URL
|
Calculez la conso électrique de votre PC
|
Hébergez vos photos
Page 259 sur 259 PremièrePremière ... 159209249251252253254255256257258259
Affichage des résultats 7 741 à 7 755 sur 7755
  1. #7741
    Citation Envoyé par la_bosse Voir le message
    Tu connais http://spark.apache.org/ ... ca a fait des miracles chez nous
    Bah, depuis, j'ai terminé. C'est assez lent à cause de la base sql quand on récupère les données, mais bon, comme j'ai dis, j'ai fais du pré-calcul, et du coup, bah, c'est rapide à l'utilisation.
    Pour le temps réel, fuck. Ça sert à rien en plus pour nous.
    Et apprendre et réaliser un truc avec spark, que je ne connais absolument pas, en une semaine lolno

    Puis de toute manière, je risque fort de changer de boulot bientôt. C'est plus vraiment mon problème.
    J'ai raison et vous avez tort.

  2. #7742


    Le compilateur IBM.....

    Contexte : je dois essayer d'adapter des codes scientifiques sur la nouvelle archi power8. En gros des codes de type stencil (on a une domaine 3D, à chaque itération pour chaque élément on va calculer une nouvelle valeur à partir de son voisinage "en croix").

    Bien évidemment c'est du fortran, mais relativement bien écrit (par un informaticien à la base ). Mais je n'arrive à rien en tirer, quoique je change ça va au mieux aussi lentement qu'en compilant bêtement le code de base.

    Je tente une approche par bloc, rien de bon. On a des gros caches sur cette machine, donc je tente des gros blocs. C'est moins pire. Allez juste pour rire, je fais des blocs de la taille du domaine.

    J'obtiens un speedup de presque deux.
    Avec des blocs de la taille du domaine.
    Donc en ayant ajouté deux boucles externes qui vont de 1 à 1, et en changeant les indices internes qui ne vont plus de min à max mais de min à (1* max + 1) - 1

    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  3. #7743
    C'est parallélisé et/ou vectorisé ou bien c'est la version séquentielle naive et xlf n'arrive rien à en faire ?

    Il a quelle gueule le code généré ? L'assembleur Power, c'est presque lisible, enfin plus que le x86 déjà.

    Edit: tu as l'option -qreport pour générer un rapport d'optim sur les boucles, et pour l'assembleur c'est -S comme sous gcc.
    Dernière modification par Møgluglu ; 27/08/2015 à 19h07.

  4. #7744
    C'est une version séquentielle naïve, mais à priori le compilo s'en sortait déjà bien pour vectoriser. Je comparerai les reports demain.
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  5. #7745
    Bon bah ça vient de la vectorisation, si je désactive la simd à la compil j'ai les mêmes perfs sur les deux versions.

    Le rapport de vectorisation donne les mêmes infos pour les deux (triple boucle correctement vectorisée).

    Le code assembleur c'est quand même imbuvable, il y en a 2000 lignes juste pour une des boucles en question.
    Dans les deux cas ça semble bien utiliser des opérations sur 4 floats, par contre dans la version plus rapide le code généré contient des blocs regroupant des appels à une même instruction, alors que dans l'autre ce n'est pas le cas.
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  6. #7746
    En gros il vectorise dans les deux cas, et il unroll la boucle seulement dans un cas, c'est ça ?

    (Attention chez IBM, vector n'est pas synonyme de SIMD. Souvent quand ils parlent de vecteurs, c'est des vrais vecteurs longs comme à l'époque des Cray. Donc il doit pouvoir vectoriser avec différentes tailles de vecteurs qui correspondent à différents facteurs de déroulage de boucle.)

    Pour voir si la perf que tu obtiens est raisonnable, tu peux commencer par compter le nombre de flops et d'accès mémoire dans le code (à la louche), et voir où tu te situes par rapport à la bande passante et la perf crête.
    Après, ça n'a pas forcément de sens d'optimiser à fond la version mono-thread, vu que quand tu seras en multi-thread tu auras besoin de partager les caches et la bande passante, et c'est là que le blocking sera éventuellement profitable.

  7. #7747
    Je parle bien de vectorisation SIMD.
    Ca ressemble bien à du déroulage de boucle effectivement. Le rapport de compil n'indique rien à ce niveau...

    J'ai essayé de le forcer avec les options du compilo et les directives, aucun effet.

    En fait en réduisant les modifications, je viens de me rendre compte qu'involontairement je spécialisait les bornes de la boucle pour un cas donné.

    En jouant un peu, ça marche pareil avec plusieurs variantes de la même idée :
    Version lente :
    do x = xmin, xmax
    Versions rapides :
    do x = 1, xmax
    do x = xmin, 100
    do x = xmin, xmin + xmax - 1 (cette forme c'est la réduction de la boucle interne par bloc)

    Ah et ça ne marche que si je fais ça sur les deux boucles internes (x et y).


    Pour l'approche multi-thread je suis bien d'accord, mais on m'a dit "tiens voilà un bout de code, fais de l'optim mono-coeur pour l'instant"
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  8. #7748

  9. #7749
    Purée, le kerning ça existe aussi.

    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  10. #7750
    Je précise que c'est long, mais que c'est très drôle et que ça vaut le coup de le lire !

    (parce que moi si on me link un pdf comme ça sur le web, je le lis pas, mais là ça vaut le coup)
    Rust fanboy

  11. #7751
    Ouais mais c'est assez illisible.
    "Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution." · 6hit combo!

  12. #7752
    tl;dr : Le mec t'explique qu'il en a rien à foutre de débugger son document pour qu'il soit lisible, lui c'est un trve h4ck3r système qui s'attaque à des vrais bugs de buffer overrun dans le kernel. (Et qui a de la chance que les développeurs de la couche en dessous, le hardware, travaillent proprement.)

  13. #7753
    L'une des meilleurs parties:
    You might ask, “Why would someone write code in a grotesque language that exposes raw memory addresses? Why not use a modern language with garbage collection and functional programming and free massages after lunch?” Here’s the answer: Pointers are real. They’re what the hardware understands. Somebody has to deal with them. You can’t just place a LISP book on top of an x86 chip and hope that the hardware learns about lambda calculus by osmosis. Denying the existence of pointers is like living in ancient Greece and denying the existence of Krackens and then being confused about why none of your ships ever make it to Morocco, or Ur-Morocco, or whatever Morocco was called back then. Pointers are like Krackens—real, living things that must be dealt with so that polite society can exist.

  14. #7754
    C'est bien drôle en effet . Et quand je lis des trucs comme ça j'me dis que je vais en rester aux langages garbage-collected.
    Après je sais pas si son pète au casque était là avant qu'il devienne programmeur système ou si ça s'est manifesté après, en tous les cas ça le travaille

  15. #7755
    Cette escroquerie au compilo que je viens de finaliser....

    En fait dans mon problème, c'est uniquement le fait d'avoir une bonne fixe sur les itération de la boucle qui permet au compilo de générer un code plus efficace, l'utilisation des indices en soi n'est pas importante.

    J'arrive donc à une version générique avec un petit tour de passe-passe :

    do y = ymin, ymax
    do x = xmin, xmax

    devient

    do yi = 0, ymax - ymin
    y = yi + ymin
    do xi = 0, xmax - xmin
    x = xi + xmin


    Et c'est tout, rien à changer dans les calculs, enjoy your facteur de presque 2.
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

Page 259 sur 259 PremièrePremière ... 159209249251252253254255256257258259

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •