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 :

conception d'un RAM benchmark


Sujet :

C

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut conception d'un RAM benchmark
    bonjour à tous,

    j'ai de petites bases en C et dans le cadre d'un projet, je dois pouvoir vérifier les débits théoriques de ma RAM.

    Je souhaiterais pour commencer, faire un simple programme en C en User space sous Linux afin d'aller écrire des données de taille connu dans la RAM, de mesurer le temps nécessaire à cette écriture afin d'en déduire le débit. J'aimerai faire la même chose pour la lecture.

    Dans un second temps, je migrerai ce programme dans le Kernel space.

    Pouvez-vous me donner des informations relatives à la manière de m'y prendre etc ?

    Merci et meilleures salutations

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Tu alloues un gros bloc de mémoire et tu écris dedans. Tu peux récupérer l'heure précisément avec gettimeofday().

    Le problème en user space c'est que ton programme va être interrompu ou préempté. Tu peux en partie contourner ce problème en utilisant des fonctions comme times() qui te donne seulement le temps CPU utilisé par ton processus.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Il ne suffit pas d'allouer de la mémoire, car cela est trop dépendant du système je pense.
    Il faut faire comme memcheck. Une fois la mémoire allouée, il faut faire des opérations dessus (comme une simple addition). Cela permet de forcer la lecture et l'écriture (du résultat).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    Merci pour vos réponses.

    Le fait que le programme tournera en mode user est qu'il est sujet a des interruptions sera pris en compte dans l'interprétation des résultats.

    Peux-tu m'en dire un peu plus sur memcheck ? Comment fonctionne-t-il ? C'est le programme qui permet de détecter les leaks dans un programme en C ?

    merci et meilleures salutations

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 150
    Billets dans le blog
    150
    Par défaut
    Pardon, je ne voulais pas dire memcheck, mais l'outil memtest.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    Ok merci ! Mais ce programme permet de tester la mémoire mais donne-t-il aussi des débits par hasard ? car si c'est le cas, je ne vais pas m'amuser à réinventer la roue

  7. #7
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Si tu veux faire un test réellement efficace de ta mémoire, il te faudra effectivement t'affranchir du système d'exploitation, pour pouvoir notamment tourner dans un contexte sans interruption, effectivement.

    Maintenant, il devient assez difficile de faire des benchmarks précis de l'efficacité d'une mémoire dans tous les contextes sans être un spécialiste de la chose car cela dépend de beaucoup de facteurs : le type de bus, les niveaux de cache L1 et L2, et la cadence de ton processeur si celui-ci gère le frequency scaling.

    Il faut aussi tenir compte du fait que la mémoire peut être éventuellement partagée avec certains périphériques, ce qui ralentit encore l'accès.

    Donc, un test pertinent sera intimement lié à l'architecture que tu utilises.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    merci bien pour vos réponse !

    après réflexion, il est claire que nous allons pas pouvoir faire un test précis de la RAM. J'ai trouvé le programme Ramspeed qui me semble très intéressant ! de plus, il est open source donc permet facilement de comprendre les tests qu'il fait ainsi de pouvoir ajouter des tests personnel facilement.

    J'ai pu lire à plusieurs endroits que la cadence de la RAM dépendait également de la fréquence du CPU. est-ce correcte ? Car sur les datasheet des RAM, les constructeurs indiquent toujours une fréquence de clock.

    merci pour vos précieuses réponses

  9. #9
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Citation Envoyé par cyrill.gremaud Voir le message
    J'ai pu lire à plusieurs endroits que la cadence de la RAM dépendait également de la fréquence du CPU. est-ce correcte ? Car sur les datasheet des RAM, les constructeurs indiquent toujours une fréquence de clock.
    Oui, et c'est encore plus vrai si cette fréquence est variable, comme expliqué dans mon précédent commentaire.

    Il faut savoir que tu ne peux tester l'efficacité de la mémoire qu'en la lisant et en écrivant dedans. Et ça, c'est ton micro-processeur qui le fait. S'il s'avère qu'il est plus lent que ta RAM, tu pourras définir une limite basse, mais pas une valeur absolue.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    Super merci beaucoup pour votre aide.

    Je suis actuellement en train de faire des tests avec le programme ramspeed disponible gratuitement pour linux sur le site http://alasir.com/software/ramspeed

    Le readme est très complet et les sources sont disponibles. Il est très simple de modifier ce code afin d'insérer un test spécifique que l'on désirerai faire.

Discussions similaires

  1. Benchmark fréquence de la RAM
    Par HNT dans le forum Composants
    Réponses: 2
    Dernier message: 23/10/2005, 12h52
  2. Connaitre la taille de la RAM
    Par dway dans le forum Assembleur
    Réponses: 23
    Dernier message: 15/09/2004, 10h05
  3. [Concept] Réplication
    Par melinda dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 31/03/2003, 17h29
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  5. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29

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