Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 21 sur 21

Discussion: SIMD et applications

  1. #1
    Je suis a la recherche d'idees pour l'utilisation de jeux d'instructions SIMD.

    On a evidemment les grands classiques :

    - codec
    - pipeline graphique, rasterization
    - calcul scientifique vectorisable

    Mais je suis plutot a la recherche de quelque chose de plus exotique (tout en etant utile). Je suis preneur de toute idee et pointeur !

  2. #2
    Certains font du traitement de strings aussi.
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  3. #3
    C'est pour un exercice de TP ?

    Traitement d'image ?
    Par exemple, calculer le négatif d'une photo, ou un effet un peu plus compliqué (blur, sharpen, ...)
    Ou traitement du signal (un effet sonore par exemple, de la reverb, ...).

  4. #4
    Citation Envoyé par Yasko Voir le message
    Traitement d'image ?
    Par exemple, calculer le négatif d'une photo, ou un effet un peu plus compliqué (blur, sharpen, ...)
    Ou traitement du signal (un effet sonore par exemple, de la reverb, ...).
    Bon, j'aurais mis ça dans "calcul scientifique vectorisable", moi

    Sinon tu peux améliorer pas mal d'algos génériques avec un peu d'astuce, d'espièglerie, c'est la vie de Ca....
    (Tris, recherches linéaires...)
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  5. #5
    Moui, scientifique / multimédia quoi

    Pour le traitement de string/texte, un analyseur statique de code ? (pour asm ARM bien sur).
    Un compilateur ?

  6. #6
    Hum, donc en gros, tu as une solution, et tu cherches un problème, c'est ça ? :D

  7. #7
    Ce n'est pas pour un TP, j'ai juste envie de delirer sur un probleme utile

    Allez-y, lachez-vous

  8. #8
    - Calcul scientifique non vectorisable, mais avec plein d'instances différentes d'un problème à résoudre en même temps.

    En particulier tous les algos stochastiques, genre simulation financière (le logiciel de Kerviel ), ou simulation de micro-architecture (on veut faire tourner les SPEC sur tout plein de variantes d'une micro-archi pour déterminer la combinaison de paramètres optimale).
    Ou attaque crypto brute-force, genre attaque par dictionnaire.

    Sinon le traitement de chaînes ça sert beaucoup en bio-info (génomique).

    Au fait Newbie tu as très bien fait de poster ça, parce que moi je cherche aussi une idée de sujet de TP/projet étudiant en CUDA
    Les réponses m'intéressent aussi...

    Inversement, juste une question très bête que je me pose : quelles sont les applis "computationally intensive" qui ne soient pas potentiellement vectorisables?

  9. #9
    Citation Envoyé par Møgluglu Voir le message
    Inversement, juste une question très bête que je me pose : quelles sont les applis "computationally intensive" qui ne soient pas potentiellement vectorisables?
    Je pense qu'il faut distinguer "potentiellement" de "trivialement". Je sais, ca t'avance pas des masses

  10. #10
    Mogluglu> Ton post me fait penser à un gars qui a codé un truc en CUDA pour craquer le format MD5.
    J'ai pas retrouvé le site où j'avais lu ça, mais c'est évoqué ici :
    http://itnewsworld.blogspot.com/2008...ute-force.html
    (par contre pas de comparaison avec le CPU seul)

  11. #11
    Citation Envoyé par Møgluglu Voir le message
    Inversement, juste une question très bête que je me pose : quelles sont les applis "computationally intensive" qui ne soient pas potentiellement vectorisables?
    J'imagine les trucs très très branchants, comme les FSM (et donc les parsers) bien que j'imagine que il y'a des psychopathes qui doivent s'y attaquer
    Les VM aussi...
    Sleeping all day, sitting up all night
    Poncing fags that's all right
    We're on the dole and we're proud of it
    We're ready for 5 More Years

  12. #12
    Un modifieur de voix en temps réel, facile à utiliser. (parce que j'ai rien trouver qui me convienne, le but est de générer en RT une voix genre brooklyn bounce entre le micro et les HP (micro DJ, donc pas de larsen))
    Mes propos n'engagent personne, même pas moi.

  13. #13
    Citation Envoyé par Foudge Voir le message
    Mogluglu> Ton post me fait penser à un gars qui a codé un truc en CUDA pour craquer le format MD5.
    J'ai pas retrouvé le site où j'avais lu ça, mais c'est évoqué ici :
    http://itnewsworld.blogspot.com/2008...ute-force.html
    (par contre pas de comparaison avec le CPU seul)
    Tu peux trouver des choses similaires pour le CELL:
    http://www.blackhat.com/presentation...-08-breese.pdf
    http://www.hyperelliptic.org/SPEED/s...cell-speed.pdf

    Citation Envoyé par Tramb Voir le message
    J'imagine les trucs très très branchants, comme les FSM (et donc les parsers) bien que j'imagine que il y'a des psychopathes qui doivent s'y attaquer
    Les VM aussi...
    Bah les compilateurs ne sont plus vraiment limites par la vitesse des lexer/parser. En revanche, il est probable que certaines phases d'optim puissent beneficier du SIMD (dataflow).

    Quant aux VM, je ne vois pas bien comment profiter du SIMD (sans y reflechir plus que ca).

    Citation Envoyé par Neo_13 Voir le message
    Un modifieur de voix en temps réel, facile à utiliser. (parce que j'ai rien trouver qui me convienne, le but est de générer en RT une voix genre brooklyn bounce entre le micro et les HP (micro DJ, donc pas de larsen))
    Je pense que la on entre dans la categorie trivialement vectorisable (ou en tout cas trop DSP like), non ?
    Dernière modification par newbie06 ; 07/08/2008 à 14h13. Motif: Fusion automatique

  14. #14
    Citation Envoyé par Tramb Voir le message
    J'imagine les trucs très très branchants, comme les FSM (et donc les parsers) bien que j'imagine que il y'a des psychopathes qui doivent s'y attaquer
    Gagné.
    Une FSM c'est juste une table de transitions, si tu as un gather efficace ça se parallélise trivialement en faisant plein de transitions à la fois. (ex google sur "Aho-Corasick GPU")
    Bien sûr il faut avoir beaucoup d'états à maintenir / chaînes à parser simultanément.

    Les VM aussi...
    Pour une VM de multicore vectoriel, ça peut marcher
    Sur une archi à la RISC, le traitement de différentes instructions doit rester assez similaire.

  15. #15
    Citation Envoyé par Neo_13 Voir le message
    Un modifieur de voix en temps réel, facile à utiliser.
    Tu prends un ballon rempli d'hélium, ça devrait suffire

    Une application utilisant massivement les unités SIMD dites-vous ? Facile : un calcul de fractales

  16. #16
    Citation Envoyé par Møgluglu Voir le message
    ou simulation de micro-architecture (on veut faire tourner les SPEC sur tout plein de variantes d'une micro-archi pour déterminer la combinaison de paramètres optimale).
    Ca tu peux oublier tout de suite pour le SIMD.

    Calcul scientifique sur matrices creuses: c'est nettement plus fun que le calcul regulier (mais il y a de la litterature sur le sujet).

    Tout ce qui est algos de DSP/ codec video (FFT/DCT/ME/MC) c'est trop classique et ca ete fait et refait, par contre tout ce qui est traitement d'images photo c'a l'est moins: le dematriceage des donnees d'un capteur RAW, la detection de contours/contrastes (pour l'autofocus), l'accentuation, la creation d'histogrammes, balance des blancs etc...

    Un autre truc amusant, vectoriser un VLC d'un encodeur video. Ca a deja ete fait mais ce n'est pas dans le domaine du facile/courant (c'est en general du code bien sequentiel) surtout si tu t'attaques a un codage arithmetique au lieu de huffman de base.
    Dernière modification par fefe ; 07/08/2008 à 16h18.
    fefe - Dillon Y'Bon

  17. #17
    Citation Envoyé par Childerik Voir le message
    Tu prends un ballon rempli d'hélium, ça devrait suffire
    Oui mais il veut imiter brooklyn bounce et pas les schtroumpfs
    http://valid.x86-secret.com/cache/banner/313021.png

  18. #18
    Citation Envoyé par fefe Voir le message
    Ca tu peux oublier tout de suite pour le SIMD.
    J'y connais rien, mais on m'avait à peu près convaincu que dans un simulateur modulaire (i.e. pas un SimpleScalar-like), chaque composant passait son temps à faire à peu près la même chose à chaque cycle. On m'aurait menti?

    Ou c'est peut-être juste que les simulateurs modulaires c'est tout lent et personne s'en sert dans la vraie vie?

  19. #19
    Citation Envoyé par Møgluglu Voir le message
    J'y connais rien, mais on m'avait à peu près convaincu que dans un simulateur modulaire (i.e. pas un SimpleScalar-like), chaque composant passait son temps à faire à peu près la même chose à chaque cycle. On m'aurait menti?

    Ou c'est peut-être juste que les simulateurs modulaires c'est tout lent et personne s'en sert dans la vraie vie?
    Ptet pour les simulateurs RTL ou gate. Mais pour le reste, non

  20. #20
    Citation Envoyé par Møgluglu Voir le message
    J'y connais rien, mais on m'avait à peu près convaincu que dans un simulateur modulaire (i.e. pas un SimpleScalar-like), chaque composant passait son temps à faire à peu près la même chose à chaque cycle. On m'aurait menti?

    Ou c'est peut-être juste que les simulateurs modulaires c'est tout lent et personne s'en sert dans la vraie vie?
    Les simulateurs se prettent extremement bien au modele SPMD, mais de maniere general possedent tellement de branches de code differentes que les chances de pouvoir beneficier du SIMD tendent vers 0 des lors que ton simulateur a plus de 2 parametres avec 3 valeurs possible en entree chacun (valeurs typiques dans les plusieurs centaines fois ~5).

    De maniere generale je ne comprends pas non plus le rapport entre modularite du simulateur et le fait qu'il se prete a la parallelisation SIMD. En revanche dans les 10 dernieres annees les opportunites du SIMD dans des simulateurs d'architecture que j'ai eu sous les yeux ne depassaient pas la vectorisation de boucles faisant une copie memoire ou un bzero.

    Dans les simulateurs que j'ai profile, le bloc de code le plus frequement employe n'a jamais depasse les 3% du temps d'exec.

    La personne qui t'a fait penser que le SIMD etait approprie devait forcement avoir quelque chose de different a l'esprit, mais je ne vois pas quoi.

    A ma connaissance cela ne s'applique pas non plus aux simulateurs RTL, en revanche pour ce qui est de la simulation de circuit je ne sais pas (mais on s'eloigne de l'architecture pour se rapprocher de la physique).
    fefe - Dillon Y'Bon

  21. #21
    La simulation de circuit m'a fait penser au path finding.
    La aussi, je suis suppose qu'il y a pas mal de branches conditionnelles, mais on peut peut-être grouper les opérations pour plusieurs hops d'un même chemin, voire même pour plusieurs chemins (1 chemin = 1 thread forcement ?).

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
  •