Jak zjistit podporu Hyper-threadingu?

jadd

Jak zjistit podporu Hyper-threadingu?
« kdy: 09. 03. 2010, 17:44:29 »
V /proc/cpuinfo mám uvedenou podporu "ht" ale Intel u mého procesoru tvrdí že jej nepodporuje. To samé je na Wikipedii.

Tohle je zkopírovaná část z oficiální dokumentace, jak zjistit podporu.

The physical processor package is capable of
supporting more than one logical processor.
This field does not indicate that Hyper-Threading
Technology or Core Multi-Processing (CMP) has
been enabled for this specific processor. To
determine if Hyper-Threading Technology or CMP is
supported, compare value returned in EBX[23:16]
after executing CPUID with EAX=1. If the
resulting value is > 1, then the processor supports
Multi-Threading.
IF (CPUID(1).EBX[23:16] > 1)
{
Multi-Threading = TRUE
}
ELSE
{
Multi-Threading = FALSE
}

Jenom nevím jak to použít. Zkusil jsem těch osm řádků zkopírovat do souboru a spustit ale Bash mě vrátil

sh ./cpuid
./cpuid: řádek 1: chyba syntaxe poblíž neočekávaného tokenu „CPUID“
./cpuid: řádek 1: `IF (CPUID(1).EBX[23:16] > 1)'

Jak to spustit? Musí se to prohnat přes nějaký kompilátor?
« Poslední změna: 10. 03. 2010, 23:06:40 od Petr Krčmář »


Re: Jak zjistit podporu HypeTreadingu v Intel Procesoru?
« Odpověď #1 kdy: 10. 03. 2010, 12:52:13 »
HT se chová tak, že virtuálně zdvojnásobuje počet jader v procesoru. Pokud je v /etc/cpuinfo vidět dvojnásobej jader než kolik jich procesor fyzicky má, pak je tam HT.  V opačném případě HT procesor neumí nebo je vypnut v BIOSu. Sluší se dodat, že reálně přináší HT nárůst výkonu maximálně do 10 % a to ještě u aplikací, které dokáží běžet vícevláknově. Žádný dramatický nárůst se nekoná.

Kit

Re: Jak zjistit podporu HypeTreadingu?
« Odpověď #2 kdy: 10. 03. 2010, 18:22:11 »
Nesouhlasím. V případě renderování v programu POV-Ray s využitím HT jsem zaznamenal nárůst až o 50%.

.

Re: Jak zjistit podporu HypeTreadingu?
« Odpověď #3 kdy: 11. 03. 2010, 06:05:47 »
Nesouhlasím. V případě renderování v programu POV-Ray s využitím HT jsem zaznamenal nárůst až o 50%.
A teď hádej čím to je. Vzhledem k množství nesmyslů, kterými nás zaplavuješ, ti doporučuji studovat a nekomentovat.

nojme

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #4 kdy: 11. 03. 2010, 06:44:38 »
Ten "skript" spustis stejne dobre asi jako vcerejsi seznam veci k nakupu.


aaa

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #5 kdy: 11. 03. 2010, 13:45:48 »
len na vysvetlenie, "skript" je pseudo-kod - https://secure.wikimedia.org/wikipedia/en/wiki/Pseudo-code
Najlepsi sposob ako ho "spustit" je napisat program v assembleri ktory tu hodnotu v EBX[23:16] vypise ;-)

Xjmeno363

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #6 kdy: 11. 03. 2010, 18:07:25 »
informace o tom, že ...maximálně do 10 % je samozřejmě zcela stejně nesmyslná jako hláška o 50%.
U HT bude přírůstek výkonu tím vyšší, čím méně budou u procesů kolidovat požadavky na sdílené prostředky v CPU a budou využívány zdvojené(z trojené..) části pipeline.
tedy přírůstek výkonu je silně aplikačně závislý a u CPU, které má několikanásobný počet např. násobiček může dosáhnout u optimalizovaných aplikací i více než 50% zrychlení.
U neoptimalizovaných aplikací však může bohužel docházet i ke zpomalení - plánovač si myslí, že má k dispozici dvě jádra a vytváří dva procesy - přitom ty následně kolidují na sdílených prostředcích.

Nicméně příchod skutečných vícejádrových CPU se již nedal zastavit.
A teď nás teprve čeká bonbónek
http://techresearch.intel.com/articles/Tera-Scale/1421.htm

guest

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #7 kdy: 12. 03. 2010, 16:03:25 »
Už to zkoumat nebudu ale z čeho to /proc/cpuinfo vzalo když podpora není.

Podle toho jak to chápu, procesor "ht" podporuje ale je vypnut a nejde to uživatelsky měnit (Tedy jde to ale ne jednoduše a mě se to nepodaří a nebo to ani pro mobilní procesor není žadoucí ?)

Je ale zajímavý že corei7 to má zase zapnutý, tak to asi zbytečné není ? 

trubicoid

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #8 kdy: 12. 03. 2010, 20:02:36 »
no pokud mas ht v cpuinfo, tak procesor ht podporuje; jaky cpu vlastne mas?

jeste je casto potreba ht povolit v biosu, ale nektery biosy proste tu volbu nemaji

pak je jeste moznost zapnout ht pomoci parametru prikazove radky kernelu a to bud <code>ht=on</code> a/nebo <code>acpi=ht</code>

jeste je potreba mit zkompilovany v jadre podporu pro HT CONFIG_X86_HT=y a pak se jeste podivej na <code>dmesg | grep -i hyper</code> jestli nerika neco jako <code>CPU: Hyper-threading is disabled</code>

guest

Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #9 kdy: 13. 03. 2010, 23:01:51 »

Core2duo P8600

který z nich přesně nevím, to mi v /proc nezobrazí.

V jádře to mám povolený, v BIOSu položku nemám a v dmesg po zapsaní "ht=on" do grubu0,97 nic nepíše.

Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #10 kdy: 13. 03. 2010, 23:12:57 »
No jedna věc je jistá: C2Duo opravdu HT nemá, a to ani vypnutej, protože C2Duo rodina to prostě neuměla.

PCnity

  • *****
  • 685
    • Zobrazit profil
    • E-mail
Re: Jak zjistit podporu Hyper-threadingu?
« Odpověď #11 kdy: 19. 03. 2010, 18:56:25 »
« Poslední změna: 19. 03. 2010, 18:58:25 od PCnity »