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

Autres éditeurs Discussion :

[HYPER-THREADING] option de compilation?


Sujet :

Autres éditeurs

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2005
    Messages : 41
    Points : 28
    Points
    28
    Par défaut [HYPER-THREADING] option de compilation?
    Bonjour à tous,

    J'ai développé un driver qui fonctionne parfaitement bien sur une machine Intel Core 2 CPU 6400 @ 2.13GHz (1 Go RAM)
    Ce driver est utilisé par nos cartes d'acquisition.
    Il a été développé en C++ avec VisualStudio.NET 2003 et utilise en une librairie de driver générique qui fait le passage en mode kernel (mais cela n'est pas vraiment utilse à savoir).

    Le problème est qu'une fois ce driver installé sur une machine de type Xeon (bi-processeur dual core 2) avec hyper-threading activé, la vitesse d'acquisition s'écroule provoquant l'obtention d'images corrompues en sortie du driver (l'application m'affiche des images incorrectes: décallage d'informations dans l'image).
    Mais ceci semble être une simple conséquence d'une mauvaise gestion, par l'architecture système, des threads en fonctionnement dans le driver.

    Par ailleur, en enlevant un processeur et en désactivant l'hyper-threading sur cette machine Xeon, le problème n'apparaît plus. Mes images semblent correct. Par contre, la consommation CPU est de 100%.

    Ce problème est très déroutant!

    Quelqu'un possède-t-il une information utile qui pourrait expliquer ce disfonctionnement dans la machine Xeon,

    Existe-t-il, dans le compilateur de Visual Studio 2003, une option de compilation pour prendre en charge l'hyper-threading?

    En concidérant que cette option existe, si je ne l'utilise pas, est-il possible alors qu'un ralentissement aussi énorme se produise?

    Merci pour toutes vos suggestions...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2005
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Visiblement ce post n'inspire guère beaucoup de monde.

    De toute façon le problème est résolu...
    La machine Xeon ne possède pas un bon contrôleur graphique, ou peut-être que le driver de ce contrôleur graphique est buggé.

    En utilisant une simple carte graphique, je n'ai plus aucun problème.

    Les effets observés dans les images peuvent facilement être expliqués. En effet, la lenteur provenant du contrôleur graphique engendre un timing critique dans la carte d'acquisition. Il faut savoir que je travaille avec une caméra linéaire. La carte d'acquisition reçoit donc des signaux de ligne. Si on perd du temps à cause d'un autre composant (ici le contrôleur graphique) dans la même machine, et que la carte, elle, continue à recevoir les lignes de la caméra, alors il arrive un moment où cette la d'acquisition constate un overflow dans sa mémoire. Si malgrè le status d'overflow détecté, on continue à effectuer de l'acqusition au niveau applicatif, alors il est tout à fait probable que l'on perde des lignes dans l'image. On a alors l'impresion que l'image tourne (càd que le haut de l'image se retrouve en bas)...

  3. #3
    Expert éminent sénior

    Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    7 376
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2006
    Messages : 7 376
    Points : 17 062
    Points
    17 062
    Par défaut
    Citation Envoyé par raphael_kindt
    Le problème est qu'une fois ce driver installé sur une machine de type Xeon (bi-processeur dual core 2) avec hyper-threading activé, la vitesse d'acquisition s'écroule provoquant l'obtention d'images corrompues en sortie du driver (l'application m'affiche des images incorrectes: décallage d'informations dans l'image).
    Mais ceci semble être une simple conséquence d'une mauvaise gestion, par l'architecture système, des threads en fonctionnement dans le driver.
    Contrairement aux croyances communes, la programmation multi processus n'accélére pas toujours les temps de traitement surtout si elle est mal employée.
    Normal : l'OS doit commuter n fois par secondes et déléguer au(x) CPU le bout de code à exécuter.
    Donc c'est au niveau de la couche d'application au dessus du driver qui doit être optimisée pour exploiter la programmation multi-processus.
    Je doute que cela vienne du driver car les drivers sont placés dans une couche basse au niveau du CPU/OS;
    je doute que le CPU commute sur le code exécutable d'un driver car le code des drivers placé aussi bas tourne constamment.

    Existe-t-il, dans le compilateur de Visual Studio 2003, une option de compilation pour prendre en charge l'hyper-threading?
    A ma connaissance non sauf preuve du contraire.
    Visual Studio est optimisé pour le ....Pentium Pro
    C'est à toi de faire les optimisations nécessaires.
    Pour la gestion de l'hyperthreading c'est l'OS qui gère ça , le parallèlisme entre taches.

    Je ne suis même pas sur que Windows XP exploite à 100% les fonctionnalités des nouveaux processeurs d'Intel ou AMD ( Hyperthreading, Dual Core...).
    Peut-être Vista ?
    Peut-être une piste: si tu veux exploiter les performances à 100% des CPU il faut une biblio additionnelle genre VTune d'Intel

    http://www3.intel.com/cd/software/pr...cks/294797.htm

    http://www3.intel.com/cd/software/pr...vpa/219898.htm

Discussions similaires

  1. "Hyper Threading" et licences serveur IB
    Par lio33 dans le forum InterBase
    Réponses: 3
    Dernier message: 01/09/2005, 10h22
  2. Option de compilation gcc : sem.h
    Par Luther13 dans le forum Linux
    Réponses: 8
    Dernier message: 29/12/2004, 12h29
  3. [Compilateur]Option de compil
    Par Guybrush dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/09/2004, 11h22
  4. Réponses: 2
    Dernier message: 15/05/2004, 18h33
  5. Réponses: 2
    Dernier message: 27/02/2004, 13h47

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