Fórum Root.cz

Hlavní témata => Hardware => Téma založeno: jadd 09. 03. 2010, 17:44:29

Název: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: jadd 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?
Název: Re: Jak zjistit podporu HypeTreadingu v Intel Procesoru?
Přispěvatel: Petr Krčmář 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á.
Název: Re: Jak zjistit podporu HypeTreadingu?
Přispěvatel: Kit 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%.
Název: Re: Jak zjistit podporu HypeTreadingu?
Přispěvatel: . 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.
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: nojme 11. 03. 2010, 06:44:38
Ten "skript" spustis stejne dobre asi jako vcerejsi seznam veci k nakupu.
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: aaa 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 ;-)
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: Xjmeno363 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
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: guest 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í ? 
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: trubicoid 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>
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: guest 13. 03. 2010, 23:01:51

Core2duo P8600
 (http://processorfinder.intel.com/List.aspx?ProcFam=2643&sSpec=&OrdCode=)
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.
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: Logik 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.
Název: Re: Jak zjistit podporu Hyper-threadingu?
Přispěvatel: PCnity 19. 03. 2010, 18:56:25
Pre objasnenie:

http://marc.info/?l=linux-kernel&m=117951602406364&w=2

EDIT:

Aj tu to rozoberaju... :) https://patchwork.kernel.org/patch/59430/