IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Prechargement de données dans le cache ? (prefetching datas) vous vous y connaissez?


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut Prechargement de données dans le cache ? (prefetching datas) vous vous y connaissez?
    Bonjour, j´aurais voulu savoir si quelqu´un s´y connaissait en prechargement de données dans le cache.
    En effectuant des recherches, j´ai vu sur ce meme forum un article interessant :
    http://esibert.developpez.com/delphi/prefetch/

    Mais c´est du delphi

    Connaissez vous un moyen d´utiliser ces fonctions comme prefetch( ..) que je vois dans l´autre article, mais cette fois ci en c ou c++ ?
    Mes recherches ne sont malheureusement pas tres fructueuses, j´ai besoin d´aide.

    Je remercie par avance ceux qui pourront eclairer ma lanterne.

  2. #2
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    D'après mes souvenirs, le prefetch c'est le système d'exploitation qui le gère, pas au programmeur...
    Le prefetch c'est pour permettre de maximiser les instructions en pipeline...

    Attends d'autres avis que le mien...

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Faire un prefetching ca peut etre interressant si :

    tu dois :
    optimiser une boucle de petite taille, ..
    ... en assembleur...
    ... que le temps de latence a l acces memoire a un gros impact sur les perfs
    ... et que cette boucle soit suffisamment critique pour meriter un codage
    en assembleur meme (i.e pas appelee tous les 15 du mois, ni sur 3 octest et demi)

    De memoire tu dois trouver sur le net (genre chez intel) des benchmark type SSE pour faire un memcpy optimise.
    Dans le cas du memcpy, effectivement le temps de traitement est minimaliste et donc les temps de latences conditionnent fortement la velocite de la boucle.


    Maintenant , pour m etre moi meme pas mal interresse au probleme, je suis pas sur que ce genre d'optim hormis dans un context bien particulier soit interressant:

    - ca rend le code peu portable
    - ca coute un temps de developpement non negligeable (faire ce genre d optim implique de faire des benchmark pour constater le gain effectif .... de plus, les compilateurs etant de plus en plus malins et efficaces, tu peux meme constater des pertes de perf !!!)
    - peu maintenable : qui lit l assembleur couramment ? ca demande plus d effort de lecture , meme pour l auteur du code lui -meme
    - peu evolutif (le matos evolue , les compilateurs aussi ... mais pas le code ecrit ... donc un compilateur est plus a meme de conserver un code optimise le code dans le temps , alors que toi tu devras reecrire ta boucle pour la conserver optimmum.

  4. #4
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Tu es sûr qu'on peut faire des choses de ce style smashy?

    Dans tous les cas, il vaut mieux optimiser son code, plutôt que d'aller trifouiller la mise en cache...
    (Enfin, à partir du moment où c'est un projet important !)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    on peut effectivement optimiser soit meme le prefecthing , mais ca implique de coder en assembleur toute la boucle ....

    ... donc ca reste tres limitee... (a moins de s'appeler INTEL et de vouloir prouver que son processeur peut faire des transferts de 40 millions de Go a la milliseconde ..)

    a mon avis, sauf si les perfs sont primordiales, la meilleur optimisation dans un PROJET (avec le cout (en temps pour un projet perso, et en argent pour un projet commercial) que cela engendre), c'est d ecrire un code facilement maintenable et modifiable (puisque les projets et leur cahier des charges evoluent de toute facon dans le temps)

  6. #6
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Je vous remercie bien.
    Le but pour moi est de tester des switchs en me basant sur les procedures decrites dans la rfc 2544, notamment pour tester le debit max.

    Mon maitre de stage m´a demandé de me renseigner la dessus, mais je galere bien.(enfin un peu moins maintenant grace a vous, mais un petit peu quand meme )

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    note : je crois bien qu il existe une library 'xmm" (fourni avec un pack intel pour windows de memoire , mais c est pas sur) ou quekquechose comme ca, qui permet de faire du SSE en faisant des appels C

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/03/2012, 13h21
  2. Sauvegarder des données dans le cache
    Par daydream123 dans le forum Général Java
    Réponses: 2
    Dernier message: 10/02/2012, 16h23
  3. Récupérer des données dans des div cachées.
    Par l3xki dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/05/2008, 15h16
  4. Réponses: 3
    Dernier message: 16/05/2007, 19h35
  5. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo