# [hyperthreading] mon proc pourrait-il ?

## novazur

Bonsoir,

Un doute m'est venu en travaillant sur une machine avec un processeur "hyperthreadé".

Sur ma propre machine, j'ai :

 *Quote:*   

> $ cat /proc/cpuinfo
> 
> processor       : 0
> 
> vendor_id       : GenuineIntel
> ...

 

le flags "ht" veut-il dire que mon processeur est lui même HT ? et qu'en l'activant dans le noyau je pourrais en profiter ?

Quand je l'ai acheté, je n'ai jamais eu connaissance de cette caractéristique, et je ne l'ai jamais envisagée, mais à la lecture de cette info, je me pose la question.

Merci d'avance.

----------

## -KuRGaN-

Et bien tu n'as qu'a activé le SMP dans le noyau et rebooté et faire un cat /proc/cpuinfo et tu verras.

Mais il est vrai qu'a la vue du flag, je serai tenté de dire que tu a de l'HyperThreading.

----------

## novazur

 *-KuRGaN- wrote:*   

> Et bien tu n'as qu'a activé le SMP dans le noyau et rebooté et faire un cat /proc/cpuinfo et tu verras.
> 
> Mais il est vrai qu'a la vue du flag, je serai tenté de dire que tu a de l'HyperThreading.

 

Héhé, je sais bien que je verrai, mais c'est mon serveur, et pas mal de choses tournent dessus, dont 6 clients en Home sur NFS, et ma téléphonie, donc si je peux éviter de rebooter pour rien...  :Wink: 

Mais merci pour ton avis.

----------

## -KuRGaN-

Ho le temps de compiler le noyau et à cet heure ci, tu peux bien dire à tes users de dormir ou de regarder la télé et d'empécher de tel   :Wink: 

----------

## novazur

 *-KuRGaN- wrote:*   

> Ho le temps de compiler le noyau et à cet heure ci, tu peux bien dire à tes users de dormir ou de regarder la télé et d'empécher de tel  

 

Je n'ai cité que quelques démons, je peux t'assurer que le serveur fait bien d'autres choses, dont serveur http...

Et puis, ici, il n'est que 17h17  :Smile: 

----------

## -KuRGaN-

Ha oui en effet, j'avais pas fait gaffe à la localisation.

----------

## kangal

Je ne suis pas sur, mais il me semble que les celerons ne possedent pas la technologie hyperthreading...

http://www.xbitlabs.com/articles/cpu/display/celeron-d_2.html  :Wink: 

----------

## novazur

 *-KuRGaN- wrote:*   

> Ha oui en effet, j'avais pas fait gaffe à la localisation.

 

Elle n'y était pas, je viens de la mettre  :Smile: 

 *kangal wrote:*   

> Je ne suis pas sur, mais il me semble que les celerons ne possedent pas la technologie hyperthreading...
> 
> http://www.xbitlabs.com/articles/cpu/display/celeron-d_2.html 

 

C'est bien ce que je me disais...

Mais alors, ce "ht" indiqué, c'est un erreur ?

[edit]

D'autres se sont posé la même question avant moi (comme dab quoi)

https://forums.gentoo.org/viewtopic-t-461679

et il semblerait qu'il y ait un doute, et que certains celerons supportent le HT. Je testerai donc prochainement, pour en avoir le coeur net. Par contre, il n'y a aucune option de ce genre dans mon Bios. Est-ce rédibitoire ?

[/edit]

----------

## mirtouf

le manque de cache du celeron l'empêche de supporter le ht.

----------

## novazur

 *mirtouf wrote:*   

> le manque de cache du celeron l'empêche de supporter le ht.

 

Bon, donc, j'abandonne définitivement l'idée d'un reboot inutile ?  :Smile: 

----------

## kangal

ca serait tout de meme interessant de comprendre pourquoi tu as le flag HT a ce moment la   :Shocked: 

----------

## novazur

 *kangal wrote:*   

> ca serait tout de meme interessant de comprendre pourquoi tu as le flag HT a ce moment la  

 

Oui, sans doute, mais je ne rebooterai pas pour ça  :Wink: 

De toutes les façons, quand on cherche sur les forums gentoo (je l'avais déjà fait, mais pas avec les bons mots clé), on se rend compte que je suis loin d'être le seul dans le cas.

----------

## PabOu

Je confirme, les celerons D n'ont pas l'hyperthreading.. je suis dans le même cas.

C'est tout simplement Intel qui ne fait plus son boulot correctement.. ils auraient du supprimer ce flag mais non, ils l'ont laissé.

----------

## -KuRGaN-

En passant, le flag pour l'hyperviseur matériel ( virtualisation inside) vmx est aussi présent sur des machines qui ne l'ont pas (d'ailleurs je me damnde si c'est pas pabou qui m'avait fait la remarque sur un autre thread).

Par contre, je viens juste de remarquer, j'ai un Intel core-duo et j'ai aussi le flag ht??

Pourtant le HT et le Dual Core sont deux choses différentes.

```

cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 14

model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz

stepping        : 8

cpu MHz         : 1667.000

cache size      : 2048 KB

physical id     : 0

siblings        : 2

core id         : 0

cpu cores       : 2

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr

bogomips        : 3330.50

processor       : 1

vendor_id       : GenuineIntel

cpu family      : 6

model           : 14

model name      : Genuine Intel(R) CPU           T2300  @ 1.66GHz

stepping        : 8

cpu MHz         : 1667.000

cache size      : 2048 KB

physical id     : 0

siblings        : 2

core id         : 1

cpu cores       : 2

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc pni monitor vmx est tm2 xtpr

bogomips        : 3325.29

```

----------

## PabOu

 *-KuRGaN- wrote:*   

> En passant, le flag pour l'hyperviseur matériel ( virtualisation inside) vmx est aussi présent sur des machines qui ne l'ont pas (d'ailleurs je me damnde si c'est pas pabou qui m'avait fait la remarque sur un autre thread).
> 
> Par contre, je viens juste de remarquer, j'ai un Intel core-duo et j'ai aussi le flag ht??
> 
> Pourtant le HT et le Dual Core sont deux choses différentes.

 

C'est possible que ce soit moi, je me souviens avoir déjà parlé des flags dans les processeurs Intel qui ne reflètent pas la vérité.. mais vmx, ca ne me dit rien (j'avais parlé de mon cas à moi avec celeron et flag ht, le même problème qu'ici).

HT et Dual core sont deux choses différentes ET complémentaires ! le HT étant "plus ancien" que le dual core, la technologie sera maintenant présente sur tous les nouveaux cpu Intel à venir.. (hormis celeron)

----------

## antoine_

Effectivement les dual-core ont deux coeurs, et chacun des deux est hyperthreadé.

Et ce qui est bon, c'est que du coup tu peux mettre un -j5 dans ton make.conf :o) Chez moi ça marche nickel.

----------

## geekounet

 *antoine_ wrote:*   

> Effectivement les dual-core ont deux coeurs, et chacun des deux est hyperthreadé.
> 
> Et ce qui est bon, c'est que du coup tu peux mettre un -j5 dans ton make.conf ) Chez moi ça marche nickel.

 

Pour 4 procs virtuels, tu peux tenter le -j9 je pense  :Wink:  (en suivant le calcul : 2x nb_de_proc + 1)

----------

## -KuRGaN-

Donc le flag HT de mon Centrino Duo, c'est du bidon en gros !!!

----------

## geekounet

 *-KuRGaN- wrote:*   

> Donc le flag HT de mon Centrino Duo, c'est du bidon en gros !!!

 

Bah pour vérifier, fait un cat /proc/cpuinfo , si tu vois 4 procs, ya vraiment l'HT, si yen a que 2, c du bidon ...

----------

## anigel

 *pierreg wrote:*   

> Pour 4 procs virtuels, tu peux tenter le -j9 je pense  (en suivant le calcul : 2x nb_de_proc + 1)

 

Attention quand même au type de processeur. Autant sur les P4 à long pipeline (type Prescott), ça donnera sans doute des résultats satisfaisants, autant sur les Intel récents, revenus à des optimisations plus classique, ça risque de l'être moins. Mais rien ne vaut un bon test "à la mano"  :Wink: .

----------

## PabOu

 *pierreg wrote:*   

>  *-KuRGaN- wrote:*   Donc le flag HT de mon Centrino Duo, c'est du bidon en gros !!! 
> 
> Bah pour vérifier, fait un cat /proc/cpuinfo , si tu vois 4 procs, ya vraiment l'HT, si yen a que 2, c du bidon ...

 

Na pas oublier d'activer SMP + SMT + ACPI dans le noyau pour vérifier..

----------

## antoine_

 *pierreg wrote:*   

>  *antoine_ wrote:*   Effectivement les dual-core ont deux coeurs, et chacun des deux est hyperthreadé.
> 
> Et ce qui est bon, c'est que du coup tu peux mettre un -j5 dans ton make.conf :o) Chez moi ça marche nickel. 
> 
> Pour 4 procs virtuels, tu peux tenter le -j9 je pense ;) (en suivant le calcul : 2x nb_de_proc + 1)

 

Ha je croyais que c'était nb_proc + 1.

Ceci explique pourquoi avec -j5 il avait pas de mal du tout.

Je ferai le teste :o)

Pour -KuRGaN- : a priori non c'est pas du bidon. Pas plus que du HT normal. Essaye pour voir...

----------

## -KuRGaN-

 *Pabou wrote:*   

> Na pas oublier d'activer SMP + SMT + ACPI dans le noyau pour vérifier..

 

Pour le SMP et le SMT je vois bien mais l'ACPI tu veux activer quoi pour l'HyperThreading ??

----------

## Temet

J'ai SMP et SMT dans mon noyal mais je n'en vois que deux. Enfin c'est un Core Duo donc normal.

Y a un truc à faire pour activer le smt séparément ?

----------

## -KuRGaN-

Ben je viens de tester aussi, ben j'en vois toujours deux !!

----------

## El_Goretto

Euh, franchement, l'hyper threading, je vois plutôt çà comme une gêne qu'autre chose... (jusqu'à ce qu'on me prouve le contraire). Parce qu'on ne profite pas d'un booste de puissance (c'est un partage d'un core), et on ne peut pas exploiter à 100% le CPU avec une tâche...

Moi je veux 2 verres pleins, pas 2 demis  :Smile: .

----------

## PabOu

Il faut activer l'ACPI tout court, ya pas d'option spécifique à l'HT.

Pour le SMT, c'est juste un ordonanceur un peu différent pour exploiter le HT. A part l'activer dans le kernel, rien à faire de plus. L'hyperthreading fait croire à plusieurs processeurs mais en réalité, comme le souligne El_Goretto, il n'y a vraiment qu'une tâche qui peut être executée à 100%, et pas deux. L'HT est en fait un dédoublage de certains composants dans le processeur, mais pas de tout... d'ou l'utilité d'un ordonanceur différent pour pouvoir exploiter ca correctement.

Mais comme indiqué dans l'aide du SMT, il y a un petit overload (donc ca rend le système plus lourd), mais au final, avec des outils qui savent utiliser le multi-process, il y a un gain de performances (on parle de 30% sous Windows).

----------

## Alcap0ne

D'après différents sites que j'ai pu trouver sous google, il semblent que les CoreDuo ne supportent pas l'HyperThreading, donc inutile de s'enflammer  :Wink: 

----------

## Temet

Donc je peux le virer de mon kernel à la prochaine update :/

----------

## BuBuaBu

 *El_Goretto wrote:*   

> Euh, franchement, l'hyper threading, je vois plutôt çà comme une gêne qu'autre chose... (jusqu'à ce qu'on me prouve le contraire). Parce qu'on ne profite pas d'un booste de puissance (c'est un partage d'un core), et on ne peut pas exploiter à 100% le CPU avec une tâche...
> 
> 

 

Non, les processeur peu bel et bien executer deuc processus simaltanément.

La seul chose qui gène, c'est qu'il y a un partage du cache.

Pour mieux comprendre, voila un gros comment ça marche.

Un processeur est composé de plusieur étages.

Pour passer d'un étage à un autre, il faut un cycle.

Sachant que le proc Intel ont dans les 13 étages, il suffit dans passé la première opération au cycle N°1, puis celle du second processus au cycle 5 par exemple.

Cela explique également la différence de performence entre Intel et Amd a fréquence égal, les processeurs Amd comportant moins d'étage (~ :Cool: 

----------

## El_Goretto

 *BuBuaBu wrote:*   

>  *El_Goretto wrote:*   Euh, franchement, l'hyper threading, je vois plutôt çà comme une gêne qu'autre chose... (jusqu'à ce qu'on me prouve le contraire). Parce qu'on ne profite pas d'un booste de puissance (c'est un partage d'un core), et on ne peut pas exploiter à 100% le CPU avec une tâche...
> 
>  
> 
> Non, les processeur peu bel et bien executer deuc processus simaltanément.

 

J'ai pas dit le contraire. Simplement que quand tu as un seul processus mono threadé... Kapouéééé, t'es globalement limité à 50% du CPU total que tu aurais sans HT.

----------

## GentooUser@Clubic

J'ai aussi le flag ht sur mon vieu p4 2.2ghz première génération.

Bref intel a fait n'imp au niveau des flags   :Confused: 

```
processor       : 0

vendor_id       : GenuineIntel

cpu family      : 15

model           : 2

model name      : Intel(R) Pentium(R) 4 CPU 2.20GHz

stepping        : 4

cpu MHz         : 2193.200

cache size      : 512 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss [b]ht[/b] tm up

bogomips        : 4388.83

```

----------

## BuBuaBu

 *El_Goretto wrote:*   

>  *BuBuaBu wrote:*    *El_Goretto wrote:*   Euh, franchement, l'hyper threading, je vois plutôt çà comme une gêne qu'autre chose... (jusqu'à ce qu'on me prouve le contraire). Parce qu'on ne profite pas d'un booste de puissance (c'est un partage d'un core), et on ne peut pas exploiter à 100% le CPU avec une tâche...
> 
>  
> 
> Non, les processeur peu bel et bien executer deux processus simultanément. 
> ...

 

Je comprend pas vraiment ce que tu veux dire.

Un 2.6Ghz HT traitera une processus mono à la même vitesse qu'un 2.6Ghz sans HT.

Donc Le HT n'est qu'un avantage, peut-être voulait tu parler du prix d'achat ?

de toute façons on soulève les même problème avec un dualcore.

----------

