Jednordzeniowy rdzeń Qaud vs hiperwątkowy dwurdzeniowy [duplikat]

10

Załóżmy, że mamy dwa procesory, jeden czterordzeniowy 3,2 Ghz z 4 rdzeniami, a my mamy dwurdzeniowy 3,2 Ghz z 2 rdzeniami z 2 wątkami w każdym rdzeniu (Hyper-Threading). Moje założenia jako programisty będą następujące: 4 rdzenie 4 wątki powinny działać szybciej niż 2 rdzenie 4 wątki, ponieważ drugi procesor musi przełączać się między wątkami, aby emulować 4 rdzenie, podczas gdy pierwszy nie musi wykonywać takiego przełączania jak każdy rdzeń może działać niezależnie i indywidualnie.

Chcę potwierdzić, że moje założenie jest prawdziwe, jeśli nie, proszę wyjaśnić, dlaczego jedno jest lepsze od drugiego.

David
źródło
3
Oddaj głos, ponieważ krótka wyszukiwarka Google (Wikipedia) dałaby odpowiedź.
Werner Henze
4
@WernerHenze, podczas gdy to, co mówisz, jest prawdą, chcielibyśmy, aby ludzie widzieli wyniki SuperUser, gdy Google takie rzeczy :)
Shekhar

Odpowiedzi:

10

Wierzę, że to prawda - ponieważ hiperwątkowanie ma wspólne elementy - w szczególności główne zasoby wykonawcze, będziesz w stanie uruchomić 4 pełne wątki jednocześnie, zamiast czekać na uwolnienie tych zasobów.

Celem HT jest uzyskanie lepszej wydajności przy mniejszym wykorzystaniu obszaru matrycy - twój czterordzeniowy rdzeń byłby na ogół większy układ - powiedzmy prawie dwa razy większy niż dwurdzeniowy układ inny niż HT, podczas gdy dwurdzeniowy układ HT 5% większy. Czterordzeniowy procesor może widzieć nawet dwukrotnie większą prędkość przy odpowiednim obciążeniu roboczym (choć jest to mało prawdopodobne, ponieważ w większości przypadków prawdopodobnie nie będziesz uruchamiać 4 wątków przy pełnej wydajności), podczas gdy dwurdzeniowy procesor HT widziałby 15-30% lepszą wydajność ( według wikipedii ) niż dwurdzeniowy procesor inny niż HT.

Więcej rzeczywistych rdzeni jest zwykle lepszych.

Journeyman Geek
źródło
1
Procesor HT zobaczy 15-30% ... Kluczują tutaj. HT nie zastępuje prawdziwego drugiego rdzenia (lub 2 lub 4 itd.)
Austin T French
1
Więcej procesorów, z większą liczbą rdzeni, z hiperwątkowością byłoby jeszcze lepiej ...: D
Keltari
Należy zauważyć, że głównym powodem poprawy wydajności HT jest to, że procesor rzadko jest w pełni obciążony; oznacza to, że pojedynczy wątek rzadko przetwarza dane z każdym cyklem procesora. HT pozwala CPU zaplanować drugi wątek podczas tych nieużywanych cykli. W przypadku przełączania między Facebookiem a pocztą e-mail może to być bardzo skuteczne, ale im bardziej intensywny jest procesor w każdym wątku, tym niższa będzie poprawa wydajności.
Thomas,
1

Z Wikipedii :

Hiperwątkowość polega na powielaniu niektórych sekcji procesora - tych, które przechowują stan architektury - ale nie powielaniu głównych zasobów wykonawczych. Umożliwia to pojawienie się procesora hiperwątkowości jako zwykłego „fizycznego” procesora i dodatkowego „logicznego” procesora w systemie operacyjnym hosta (systemy operacyjne nieświadome HTT widzą dwa „fizyczne” procesory), co pozwala systemowi operacyjnemu zaplanować dwa wątki lub przetwarza jednocześnie i odpowiednio. Gdy bieżące zadanie w procesorze nie byłoby wykorzystywane przez procesor bez hiperwątkowania, a zwłaszcza gdy procesor został zablokowany, procesor wyposażony w hiperwątkowanie może użyć tych zasobów do wykonania innego zaplanowanego zadania. (Procesor może zostać zatrzymany z powodu braku pamięci podręcznej, niepoprawnej oceny gałęzi,

Jeśli masz system czterordzeniowy, wówczas 4 wątki mogą działać na pełnym rdzeniu. Jeśli masz dwurdzeniowy system hiperwątkowania, wówczas 2 wątki mogłyby działać na pełnym rdzeniu, ale przy 4 wątkach wątki 1 i 2 będą dzielić jeden rdzeń, a wątki 3 i 4 będą dzielić drugi rdzeń. Hyperthreading umożliwia równoległe działanie dwóch wątków (tylko), jeśli nie używają tych samych zasobów procesora. W idealnym przypadku możesz uzyskać wysoki stopień zrównoleglenia, ale jak twierdzi Wikipedia, wzrost wydajności nie wynosi 100%, ale tylko 15-30%.

Werner Henze
źródło
1

W przypadku hiperwątkowości czas bezczynności rdzenia zadania A (wspomniany rdzeń mógł wysłać zapytanie o dysk na dane, poczekać, aż dysk przeszuka obszar talerzy, odczytać dane i odesłać je z powrotem do rdzenia ) jest wykorzystywany do wykonania innego zadania B. Tak więc, gdy zadanie B jest obsługiwane przez tak zwany wątek 2 i jeśli żądanie pobierania danych przez zadanie A jest zakończone, zadanie A nadal musi czekać na zakończenie rdzenia przez wątek 2. Oba wątki nie mogą być wykonywane jednocześnie w jednym rdzeniu. Ponownie, HT wykorzystuje niedopasowanie prędkości między rdzeniem / procesorem a różnymi podsystemami w komputerze. HT wykorzystuje twoje rdzenie do pełnej pojemności ... to jest jak pełne wykorzystanie pojemności. Tak więc, jeśli otworzysz cztery karty w przeglądarce, każda karta będzie miała rdzeń w systemie 4-rdzeniowym, a dwie karty będą musiały współdzielić rdzeń w systemie 2-rdzeniowym.

Siva
źródło