Grupy dyskusyjne   »   pl.comp.pecet   »   Czy HyperThreading może spowalniać? (Intel i3)

Czy HyperThreading może spowalniać? (Intel i3)

Data: 2010-04-07 10:39:49
Autor: Latet
Czy HyperThreading może spowalniać? (Intel i3)
Witam,

Czy fakt, że 2-rdzeniowy procesor (kontretnie i3) obsługiwany jest przez system jako 4-wątkowy (HT), może negatywnie wpłynąć na wydajność działania konkretnej aplikacji, pracującej na 1 wątku?

Gdyby fizycznie taki sam procecor nie miał HT i liczba wątków równałaby sie liczbie rdzeni, to czy taka aplikacja mogłaby działać szybciej?

Skąd to pytanie - a no stąd, że gdy taka aplikacja pracuje mi na i3 i widzę obciążenie systemu 25%, to mam dyskomfort psychiczny, bo "powinno" to być 50%, skoro CPU jest 2-rdzeniowy. I pojawił się niepokój, czy to nie jest tak, że ta aplikacja nie dostaje do dyspozycji całej mocy jednego rdzenia, bo część jest jakby zarezerwowana na wypadek użycia Hyper-Thread?

Jeśli tak nie jest, to chyba po prostu trzeba się przyzwyczaić, że 25% oznacza 50%...

Dzięki,

latet

Data: 2010-04-07 11:06:49
Autor: BartekK
Czy HyperThreading może spowalniać? (Inte l i3)
W dniu 2010-04-07 10:39, Latet pisze:
Witam,

Czy fakt, że 2-rdzeniowy procesor (kontretnie i3) obsługiwany jest przez
system jako 4-wątkowy (HT), może negatywnie wpłynąć na wydajność
działania konkretnej aplikacji, pracującej na 1 wątku?

Gdyby fizycznie taki sam procecor nie miał HT i liczba wątków równałaby
sie liczbie rdzeni, to czy taka aplikacja mogłaby działać szybciej?

Skąd to pytanie - a no stąd, że gdy taka aplikacja pracuje mi na i3 i
widzę obciążenie systemu 25%, to mam dyskomfort psychiczny, bo "powinno"
to być 50%, skoro CPU jest 2-rdzeniowy. I pojawił się niepokój, czy to
nie jest tak, że ta aplikacja nie dostaje do dyspozycji całej mocy
jednego rdzenia, bo część jest jakby zarezerwowana na wypadek użycia
Hyper-Thread?

Jeśli tak nie jest, to chyba po prostu trzeba się przyzwyczaić, że 25%
oznacza 50%...
Kwestia interpretacji. Twoja aplikacja zużywa 100% rdzenia. A to że system przyjmuje że skoro rdzeni jest 4, to całkowite obciążenie jednego to 25% zajętości ogólnej...

--
| Bartlomiej Kuzniewski
| sibi@drut.org  GG:23319  tel +48 696455098  http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338173

Data: 2010-04-07 11:33:58
Autor: Radosław Sokół
Czy HyperThreading może spowalniać? (Intel i3)
Latet pisze:
Czy fakt, że 2-rdzeniowy procesor (kontretnie i3) obsługiwany jest przez system jako 4-wątkowy (HT), może negatywnie wpłynąć na wydajność działania konkretnej aplikacji, pracującej na 1 wątku?

W przypadku i3 nie powinno mieć to znaczenia. Taka sytuacja
faktycznie występowała czasem w Pentium 4. Dzisiaj już te
problemy opanowano.

Skąd to pytanie - a no stąd, że gdy taka aplikacja pracuje mi na i3 i widzę obciążenie systemu 25%, to mam dyskomfort psychiczny, bo "powinno"

To w takim razie masz problem z wydajnością aplikacji czy
dyskomfort psychiczny?

Jeśli tak nie jest, to chyba po prostu trzeba się przyzwyczaić, że 25% oznacza 50%...

Dokładnie.

A żeby Cię zdołować -- nawet gdybyś wyłączył HT i widział
faktycznie te 50%, to w procesorze byłoby mnóstwo niewyko-
rzystanych jednostek wykonawczych przez większość czasu, a
realne wykorzystanie "żelaza" wynosiłoby średnio pewnie tak
z 20% ;)

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |  Politechnika Śląska                   |
\........................................................../

Data: 2010-04-07 15:53:34
Autor: RadoslawF
Czy HyperThreading może spowalniać? (Intel i3)
Dnia 2010-04-07 10:39, Użytkownik Latet napisał:

Jeśli tak nie jest, to chyba po prostu trzeba się przyzwyczaić, że 25% oznacza 50%...

Trzeba się przyzwyczaić. Niestety.
Ja mam inne pytanie, w Pentium D HT wprowadzono podobny by dać
programistom czas na przygotowanie się do oprogramowania
procesorów wielordzeniowych. W mojej opinii nie wyszło,
przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?


Pozdrawiam

Data: 2010-04-07 16:53:23
Autor: Latet
Czy HyperThreading może spowalniać? (Intel i 3)
Trzeba się przyzwyczaić. Niestety.
Ja mam inne pytanie, w Pentium D HT wprowadzono podobny by dać
programistom czas na przygotowanie się do oprogramowania
procesorów wielordzeniowych. W mojej opinii nie wyszło,
przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?


Aby zwiększyć stopień wykorzystania "żelaza"?

latet

Data: 2010-04-07 17:07:05
Autor: Radosław Sokół
Czy HyperThreading może spowalniać? (Intel i3)
RadoslawF pisze:
przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?

W celu zwiększenia stopnia wykorzystania jednostek wykonaw-
czych mikroprocesora. I w celu zwiększenia wydajności. Chyba
wystarczające powody? :)

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |  Politechnika Śląska                   |
\........................................................../

Data: 2010-04-07 17:18:06
Autor: RadoslawF
Czy HyperThreading może spowalniać? (Intel i3)
Dnia 2010-04-07 17:07, Użytkownik Radosław Sokół napisał:

przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?

W celu zwiększenia stopnia wykorzystania jednostek wykonaw-
czych mikroprocesora. I w celu zwiększenia wydajności. Chyba
wystarczające powody? :)

W jaki sposób technologia HT pozwoli zwiększyć wydajność ?
Może być jakiś link do poczytania.


Pozdrawiam

Data: 2010-04-07 16:19:40
Autor: kamil
Czy HyperThreading może spowalniać? (Intel i 3)


"RadoslawF" <radoslawfl@wp.pl> wrote in message news:hpi795$q51$2node1.news.atman.pl...
Dnia 2010-04-07 17:07, Użytkownik Radosław Sokół napisał:

przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?

W celu zwiększenia stopnia wykorzystania jednostek wykonaw-
czych mikroprocesora. I w celu zwiększenia wydajności. Chyba
wystarczające powody? :)

W jaki sposób technologia HT pozwoli zwiększyć wydajność ?

Powaznie pytasz, w jaki sposob wykonywanie dwoch watkow jednoczesnie zwieksza wydajnosc?

Może być jakiś link do poczytania.

Od Wikipedii chocby zacznij, google nie gryzie..



Pozdrawiam
Kamil

Data: 2010-04-07 17:36:58
Autor: RadoslawF
Czy HyperThreading może spowalniać? (Intel i3)
Dnia 2010-04-07 17:19, Użytkownik kamil napisał:

przespali. W jakim celu upycha się teraz technologię HT
do nowych procesorów wielojądrowych ?

W celu zwiększenia stopnia wykorzystania jednostek wykonaw-
czych mikroprocesora. I w celu zwiększenia wydajności. Chyba
wystarczające powody? :)

W jaki sposób technologia HT pozwoli zwiększyć wydajność ?

Powaznie pytasz, w jaki sposob wykonywanie dwoch watkow jednoczesnie zwieksza wydajnosc?

Zdecydowanie się nie zrozumieliśmy, może za słabo sprecyzowałem.
Zdaje sobie sprawę co daje HT w starym jednordzeniowym procesorze.
Ale co daje w nowym wielordzeniowym w sytuacji kiedy pracuje
tylko jeden rdzeń a reszta i tak nie ma co robić ?


Pozdrawiam

Data: 2010-04-07 18:01:27
Autor: Radosław Sokół
Czy HyperThreading może spowalniać? (Intel i3)
RadoslawF pisze:
Ale co daje w nowym wielordzeniowym w sytuacji kiedy pracuje
tylko jeden rdzeń a reszta i tak nie ma co robić ?

Tyle, co sam wielordzeniowy procesor. Nic.

HT i wielordzeniowość są przystosowane do obsługi sytuacji,
gdy liczba wątków czekających na realizację idzie w dziesiąt-
ki.

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |  Politechnika Śląska                   |
\........................................................../

Data: 2010-04-07 19:02:22
Autor: RadoslawF
Czy HyperThreading może spowalniać? (Intel i3)
Dnia 2010-04-07 18:01, Użytkownik Radosław Sokół napisał:

Ale co daje w nowym wielordzeniowym w sytuacji kiedy pracuje
tylko jeden rdzeń a reszta i tak nie ma co robić ?

Tyle, co sam wielordzeniowy procesor. Nic.

Tak mi się zdawało ale wolałem się upewnić.
Dzięki za obie odpowiedzi.


Pozdrawiam

Data: 2010-04-07 17:49:13
Autor: Radosław Sokół
Czy HyperThreading może spowalniać? (Intel i3)
RadoslawF pisze:
W jaki sposób technologia HT pozwoli zwiększyć wydajność ?

Wyobraź sobie, że masz dwa bloki instrukcji, z których każdy
obciąża tylko dwie z trzech jednostek ALU procesora. Lepiej
je uruchomić równolegle i obciążyć wszystkie trzy jednostki
przez większość czasu (choć obydwa bloki zostaną wykonane
troszkę wolniej, niż gdyby były uruchamiane całkiem samo-
dzielnie), czy sekwencyjnie?

Jeden niezależny blok - t sekund
Równolegle - 1.5 * t sekund
Sekwencyjnie - 2.0 * t sekund

Wydaje się, że odpowiedź jest oczywista.

Zresztą pooglądaj benchmarki na AnandTech choćby. W przypadku
nowych procesorów włączenie HT albo nie pogarsza wydajności,
albo właśnie ją zwiększa. Im prostszy i bardziej zrównoleg-
lony kod, tym przyspieszenie większe.

--
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |  Politechnika Śląska                   |
\........................................................../

Data: 2010-04-18 18:19:01
Autor: tomekr
Czy HyperThreading może spowalniać? (Intel i3)
RadoslawF pisze:

W jaki sposób technologia HT pozwoli zwiększyć wydajność ?
Może być jakiś link do poczytania.


Procesor pracując nad pojedynczym wątkiem spędza większość czasu (>40%) czekając na dane z pamięci. Wynika to z tego, że czasy losowego dostępu do pamięci RAM są bardzo długie, rzędu 45-70 ns. Tymczasem procesor pracuje z   szybkością nawet = 3GHz * 2 operacje pamięciowe/cykl zegara.

http://www.anandtech.com/show/2542/5


Ze względu na fatalne czasy dostępu losowego tak naprawdę pamięć RAM we współczesnych komputerach nie jest używana jako pamięć o dostępie losowym, tylko bardziej jako storage, podobnie jak dysk twardy. Przetwarzanie danych odbywa się w rejestrach procesora i pamięci cache L1 data cache (3-4 cykle dostępu, architektura pipeline, możliwość wykonywania 2-ch lub 3 operacji naraz). RAM służy tylko do przechowywania danych, jedyne operacje jakie wykonuje to: załadowanie danych z RAM do pamięci cache, wyładowanie danych z pamięci cache do RAM, transfer DMA z jednego miejsca w RAM do drugiego lub miezy RAM a peryferiami.


Architekci procesorów wielowątkowych liczą na to, że w czasie gdy jedne z wątków czeka na pamięć RAM drugi będzie miał coś do zrobienia w rejestrach lub pamięci cache, gdy drugi zacznie czekać na pamięć, to z kolei do pierwszego już przyjdą dane z pamięci (zdążą się załadować do cache lub rejestrów) i tak w kółko.

Statystycznie to się sprawdza, w większości przypadków uzyskuje się przyśpieszenie. Oczywiście są wyjątki - np. niektóre są tak pechowo skonstruowane, że nawzajem "walczą o cache" wyrzucając jeden drugiego z pamięci podręcznej procesora.

Data: 2010-04-07 21:28:00
Autor: marfi
Czy HyperThreading może spowalniać? (Intel i 3)
Użytkownik "Latet" <latet@nospam.pl> napisał w wiadomości news:hphgdo$42i$1inews.gazeta.pl...
Witam,

Czy fakt, że 2-rdzeniowy procesor (kontretnie i3) obsługiwany jest przez system jako 4-wątkowy (HT), może negatywnie wpłynąć na wydajność działania konkretnej aplikacji, pracującej na 1 wątku?


  Z praktyki: może.
  Nie chce mi się uzasadniać aby nie budzić demonów -  po prostu spróbuj ustawić koligację (affinity) dla tego procesu tak aby korzystał tylko z jednego rdzenia i zobacz efekt - niekoniecznie pozytywny.

--
marfi

Data: 2010-04-07 14:33:16
Autor: Matt
Czy HyperThreading może spowalniać? (Intel i3)
On 7 Kwi, 21:28, "marfi" <marfi @bb.onet.pl> wrote:
  Z praktyki: może.
  Nie chce mi się uzasadniać aby nie budzić demonów -  po prostu spróbuj
ustawić koligację (affinity) dla tego procesu tak aby korzystał tylko z
jednego rdzenia i zobacz efekt - niekoniecznie pozytywny.

Ale tu piszesz o przypadku kiedy jeden wielowątkowy proces korzysta z
jednego rdzenia fizycznego (a z dwóch "wirtualnych" rdzeni HT), a nie
o różnicy między jednym wątkiem na rdzeniu HT a jednym wątkiem na
rdzeniu nie-HT.

--
Regards
Matt

Czy HyperThreading może spowalniać? (Intel i3)

Nowy film z video.banzaj.pl więcej »
Redmi 9A - recenzja budżetowego smartfona