Compatibilité Hardware / Software
Pour fonctionner correctement, la technologie Hyperthreading
nécessite, selon Intel, les éléments suivants :
- Un Pentium 4 cadencé à 3.06 Ghz ou +
- Un Chipset Intel supportant l'Hyperthreading
- Un BIOS supportant l'Hyperthreading
- Un système d'exploitation qui inclus des optimisations pour
l'HT
Actuellement, le seul OS incluant des optimisations pour l'Hyperthreading
est Windows XP. Que ce soit en version Home ou Pro, ce système
d'exploitation est capable de tirer le meilleur parti du SMT. Etrangement,
toutes les versions de Windows 2000 font partie du groupe "non recommandé"
(tout comme Windows Millenium ou 98) et Intel suggère même
de désactiver l'Hyperthreading sur ces systèmes.
Le choix du système d'exploitation est donc primordial pour tirer
le mieux parti de l'Hyperthreading. Avant de s'intéresser aux produits
Microsoft, soulignons que nous avons installé le P4 3.06 Ghz sur
une RedHat 8.0 et que le SMT a été correctement reconnu.
Selon Intel, le Kernel 2.4.18 minimum est requis et les RedHat 7.3, 8.0
ainsi que la SuSe 8 sont compatibles. Mais revenons à Windows.
Nous avons cherché à comprendre pourquoi Windows 2000 n'était
pas conseillé et si il y avait une raison valable, technique.
Tout système d'exploitation capable de gérer plus d'un
processeur est capable d'exploiter l'HT : Windows 2000, Windows XP, Linux
pour citer les plus répandus. Sur un système d'exploitation
mono-processeur (Windows 95, 98, Me), seul le premier processeur logique
est exploité, le second restant alors inutilisé.
Cependant, il convient d'être très prudent quant à
l'exploitation de l'HT sur les OS multi-processeurs. En effet, la capacité
d'exploiter deux processeurs physiques ne signifie pas une exploitation
optimale de l'HT, et plus particulièrement lors de l'utilisation
d'applications mono-threads. L'explication tient dans la gestion des threads
par le système d'exploitation. Lors d'une utilisation courante,
un système d'exploitation tel que Windows 2000 gère entre
200 et 400 threads simultanément. Cela peut sembler beaucoup, mais
il faut préciser que beaucoup de ces threads sont dans un état
de repos, dit "idle", et ne consomment pratiquement aucune ressource
système. Cependant, un certain nombre de threads tournent en permanence,
tels que les threads du système d'exploitation, toujours à
l'affût du moindre événement (mouvement de la souris,
frappe d'une touche, lancement d'une application...).
Prenons maintenant l'exemple de l'utilisation d'un benchmark mono-thread,
programme qui par essence utilise beaucoup de ressources processeur. Sur
un système avec un seul processeur, les threads tournent en alternance,
et le thread du benchmark ne laisse que très peu de temps aux threads
système, ce qui se traduit par une diminution perceptible du temps
de réponse du système (la souris saccade par exemple), et
ce d'autant plus que le bench utilise une priorité élevée.
Sur un système à deux processeurs, le thread du benchmark
occupera pratiquement toutes les ressources d'un des deux processeurs,
laissant le second gérer les threads annexes. Aucun ralentissement
n'est alors perceptible, ce qui donne ce confort d'utilisation propre
aux machines multi-processeurs.
Regardons maintenant ce qu'il se passe sur un processeur muni de l'HT.
Le système d'exploitation affecte le thread du benchmark à
un des deux processeurs logiques, et les threads annexes au second. Seulement
cela pose un problème : le thread du benchmark est certes prioritaire
sur les threads susceptibles d'utiliser le même processeur logique,
mais pas du tout sur ceux tournant sur le second processeur logique (car
cela n'aurait aucun sens sur un système à deux processeurs).
Le résultat est que les threads annexes tournant sur le second
processeur logique occupent une part non négligeable des ressources
du processeur physique, et le thread lié au benchmark en sera fortement
ralenti !
Afin de visualiser concrètement cet effet, regardons les résultats
aux benchs CPUMark99 et ScienceMark sur notre système équipé
du Pentium 4 HT, et ce sous Windows 2000 et sous Windows XP.
Le phénomène que nous venons de décrire
apparaît de façon notable sous Windows 2000, où l'utilisation
de l'HT fait chuter le résultats CPUMark de près de 20%.
Sous Windows XP en revanche, l'activation de l'HT ne change rien au score.
Pourquoi l'effet ne se produit-il pas sous Windows XP ?
Tout simplement parce que celui-ci est optimisé pour l'HT. En fait,
la solution au problème que nous avons abordé existe : il
suffit de "déconnecter" le second processeur logique
lors du lancement d'une application mono-thread telle que le benchmark.
Pour cela, l'OS envoie l'instruction HLT (halt) au second processeur logique
afin de suspendre l'exécution des threads qui lui sont affectés.
Toutes les ressources sont donc disponibles pour le premier processeur
logique. Cette solution est simple, encore faut-il que l'OS l'utilise,
et ce n'est pas toujours le cas car c'est une précaution inutile
pour un système à deux processeurs physiques. Ainsi, Windows
2000 n'est pas à même d'exploiter correctement l'HT, ou plus
précisément le cas particulier d'une application mono-thread.
Mais d'une façon paradoxale, les applications multi-threads tourneront
parfaitement, et à plein régime ! Quoiqu'il en soit, Intel
recommande l'utilisation de Windows XP pour exploiter de façon
optimale l'HT.
Voila donc pour les Systèmes d'exploitation. Concernant les applications,
nous avons détecté quelques petites incompatibilités,
principalement au niveau des jeux comme Heroes of Might and Magic IX ou
Icewind Dale. Ces petites incompatibilités sont réglées
dés l'installation du SP1 de Windows XP. Le seul problème
qui nous n'avons pas réussi a résoudre est l'étrange
chute de performance sous Quake 3 lorsque le paramètre "r_smp"
est placé à "1". Rien de bien méchant ceci
dit. Passons à la partie matérielle :
Après les logiciels, il faut que le matériel
soit capable de supporter l'Hyperthreading. Outre le BIOS, la pièce
maîtresse de la gestion de l'Hyperthreading est le chipset. Nous
avons donc repris tous les chipsets dont nous disposions pour tester le
processeur et constater dans quel cas il fonctionne ou pas.
Intel i845D
|
Carte de test : |
Abit BD7-RAID |
Support Officiel : |
NON |
Support du processeur : |
OUI |
Support de l'HT : |
NON |
Remarque : L'i845D est la première génération
supportant la DDR-SDRAM de l'I845D. Intel ne supporte pas l'Hyperthreading
sur ce chipset puisque celui-ci ne supporte pas le bus 533 QDR utilisé
dans le Pentium 4 3.06 Ghz. Cependant, nous avons pu faire fonctionner
ce processeur sur une Abit BD7-RAID. L'hyperthreading n'était
par contre, pas supporté. |
Intel i845E
|
Carte de Test : |
Asus P4B533 |
Support Officiel : |
OUI |
Support du processeur : |
OUI |
Support de l'HT : |
OUI |
Remarque : L'i845E fait partie des chipsets
officiellement supportés par Intel pour L'Hyperthreading.
Une Asus P4B533 a reconnu sans problème notre P4 3.06 Ghz
ainsi que l'Hyperthreading grâce au BIOS 1011. |
Intel i845G
|
Carte de Test : |
Epox 4G4A+ |
Support Officiel : |
OUI/NON |
Support du processeur : |
OUI |
Support de l'HT : |
OUI/NON |
Remarque : l'i845G est assez problématique
quant à son support de l'Hyperthreading. En effet, la révision
A du chipset est annoncée pour ne PAS supporter l'Hyperthreading.
Alors qu'une nouvelle révision (la "B") supporte,
elle, l'Hyperthreading. Nous avons essayé sur une Epox 4G4A+
et une DFI NB76, les deux ont bien accepté le CPU, mais aucune
n'a reconnu l'Hyperthreading. |
Intel i850
|
Carte de Test : |
Asus P4T-E |
Support Officiel : |
NON |
Support du processeur : |
NON |
Support de l'HT : |
NON |
Remarque : Sur une ancienne P4T-E, nous ne
sommes pas parvenus à faire fonctionner le processeur à
plus de 2300 Mhz (23x100). Pas d'Hyperthreading non plus et un support
533 QDR qui n'était pas stable. |
Intel i850E
|
Carte de Test : |
Asus P4T533-C |
Support Officiel : |
OUI |
Support du processeur : |
OUI |
Support de l'HT : |
OUI |
Remarque : L'i850E a été
l'un des premiers à être annoncé comme supportant
l'Hyperthreading. Sans surprise, le support du Pentium 4 3.06 Ghz
ainsi que de l'Hyperthreading est excellent. Sur l'Asus P4T533-C,
un simple update du BIOS nous a permis de faire reconnaître
le SMT par l'OS. |
Intel i845PE
|
Carte de Test : |
Abit BE7 |
Support Officiel : |
OUI |
Support du processeur : |
OUI |
Support de l'HT : |
OUI |
Remarque : Bien que l'i845PE supporte aussi
l'Hyperthreading, la BE7 d'Abit a été incapable de
le détecter et de l'activer. Peut être qu'Abit sortira
un nouveau BIOS des l'annonce officielle de l'Hyperthreading par
Intel. La P4PE d'Asus a par contre activé l'hyperthreading
directement et le tout a fonctionné sans problème |
Intel i845GE
|
Carte de Test : |
Asus P4GE-V |
Support Officiel : |
OUI |
Support du processeur : |
OUI |
Support de l'HT : |
OUI |
Remarque : L'i845GE fait aussi partie de la
famille "Hyperthreading Ready". Rien à dire concernant
la P4GE-V de test puisque c'est avec cette carte que nous avons
réalisé tout les benchmarks de cet article. |
VIA P4X400
|
Carte de Test : |
DFI PE21-EC |
Support Officiel : |
NON |
Support du processeur : |
OUI |
Support de l'HT : |
NON |
Remarque : Le P4X400 actuel ne supporte pas
l'Hyperthreading. Probablement à cause du conflit qui oppose
Intel à VIA sur le plan juridique. Si le processeur en lui
même fonctionne correctement à 3.06 Ghz sur la carte
mère de test, l'Hyperthreading est ignoré. Cependant,
selon une de nos sources, le nouveau P4X400A supportera malgré
tout l'Hyperthreading. Cette option est d'ailleurs présente
dans son BIOS |
SiS645 (non testé)
|
Support Officiel : |
NON |
Support du processeur : |
NON ? |
Support de l'HT : |
NON |
Remarque : Nous n'avons actuellement aucune
carte basée sur le SiS645 pour pouvoir faire des tests. Cependant,
ce chipset ne supporte pas officiellement le FSB 533 QDR et ne supportera
donc jamais l'Hyperthreading. |
SiS645dx
|
Carte de Test : |
Asus P4S533 |
Support Officiel : |
NON |
Support du processeur : |
OUI |
Support de l'HT : |
NON |
Remarque : le SiS645dx réagit
comme tous les chipsets qui ne sont pas prévus pour l'Hyperthreading.
Le processeur fonctionne, mais aucune trace de l'HT. |
SiS648
|
Carte de Test : |
Abit SR7-8X |
Support Officiel : |
NON |
Support du processeur : |
OUI |
Support de l'HT : |
NON |
Remarque : Même chose pour le SiS648.
Actuellement, le BIOS de la SR7-8X ne supporte pas cette option
et n'est donc pas à même d'activer l'Hyperthreading.
Selon SiS, une nouvelle révision du SiS648 sera nécessaire
pour supporter cette option. Cependant, selon certaines rumeurs,
un simple update de BIOS permettra d'activer cette fonctionnalités.
A l'heure où nous écrivons ces lignes (Octobre 2002),
aucune information n'a filtré.
[Update Novembre 2002] : Il semble que le SiS648 actuel soit
capable d'un support partiel de l'Hyperthreading selon Asus et Abit.
Il faudra probablement attendre le 14 pour en savoir plus. |
Concernant le support du Pentium 4 3.06 Ghz proprement dit, toutes les
cartes à l'exception de la P4T-E d'Asus ont été en
mesure de supporter la fréquence de 3066 Mhz. C'est donc un succès
et les rumeurs de cartes FMB 2.0 absolument nécessaires n'était
bien qu'un argument marketing pour promouvoir la nouvelle génération
de cartes mères. Pour ce qui est du support de l'Hyperthreading
par contre, il semble que le support soit plus restreint. Si tous les
chipsets Intel recents le supporte, il faut encore que le constructeur
de la carte-mère publie un update de BIOS pour l'activer. Concernant
SiS, le tableau est moins rose. Seul le SiS648 peut prétendre au
support de l'Hyperthreading. Et seulement d'une manière partielle...
Ceci dit, tous les chipsets à venir supporteront l'Hyperthreading,
que ce soit le SiS648FX, le SiS655 ou l'E7205 chez Intel.
Suite ( Overclocking
)
|