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,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. 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 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 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ł: 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ł:
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 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 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ść ? 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, 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. 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 |
|