Однорядне ядро ​​Qaud vs двоядерний гіпер-нитки [дублікат]


10

Скажімо, у нас є два процесори, один - чотирьохядерний 3,2 ГГц з 4 ядрами, а у нас є двоядерний 3,2 ГГц з 2 ядрами з 2 потоками в кожному ядрі (Hyper-Threading). Моє припущення як програміста, 4 ядра 4 потоку повинні виконувати швидше, ніж 2 ядра 4 потоку, оскільки другий процесор повинен перемикатися між потоками, щоб імітувати 4 ядра, тоді як першому не потрібно виконувати таке перемикання, як кожне ядро може виконувати самостійно та індивідуально.

Я хочу підтвердити, що моє припущення є правдивим, якщо ні, будь ласка, поясніть, чому одне краще, ніж інше.


3
Тому що короткий пошук у Google (Вікіпедія) дав би відповідь.
Вернер Гензе

4
@WernerHenze, хоча те, що ви говорите, є правдою, ми хотіли б, щоб люди бачили результати SuperUser, коли вони Google такі речі :)
Shekhar

Відповіді:


10

Я вважаю, що це правда - оскільки гіпер-нитка поділяє деякі елементи - зокрема основні ресурси виконання, ви зможете запустити 4 повні потоки одразу, а не чекати, коли ці ресурси будуть звільнені.

Сенс HT полягає в тому, щоб досягти кращої продуктивності при меншому використанні штампової площі - ваш чотирьохядерний ядро, як правило, був би більшим чіпом - скажімо, майже вдвічі більшим, ніж двоядерний чіп, що не є HT, тоді як двоядерний чіп HT був би приблизно На 5% більше. Квадроядер може бачити вдвічі більше швидкості при правильному робочому навантаженні (правда, малоймовірно, оскільки у більшості випадків ви, мабуть, не будете працювати 4 потоками на повну потужність), тоді як двоядерний процесор HT побачить на 15-30% краще продуктивність ( за вікіпедією ), ніж двоядерний процесор без HT.

Більш фактичні ядра, як правило, краще.


1
HT-процесор побачив би 15-30% ... Вони тут ключові. HT не є заміною справжнього другого ядра (або 2, або 4 тощо)
Austin T French

1
Більше процесорів, з більшою кількістю ядер, з гіпер-нарізкою було б ще краще ...: D
Keltari

Важливо зазначити, що найбільшою причиною підвищення продуктивності HT є те, що процесор рідко повністю завантажений; тобто один потік рідко оброблятиме дані з кожним циклом процесора. HT дозволяє процесору планувати другий потік протягом тих, що не використовуються циклів. Для перемикання між фейсбуком та електронною поштою це може бути дуже ефективно, але чим інтенсивніше буде кожен процесор, тим нижчим буде підвищення продуктивності.
Томас

1

З Вікіпедії :

Hyper-Threading працює шляхом дублювання певних розділів процесора - тих, що зберігають архітектурний стан - але не дублюючи основні ресурси виконання. Це дозволяє процесору з гіпертоковою передачею відображатись як звичайний "фізичний" процесор, так і додатковий "логічний" процесор для операційної системи хоста (операційні системи, що не знають HTT, бачать два "фізичні" процесори), що дозволяє операційній системі планувати два потоки або обробляє одночасно та належним чином. Коли ресурси виконання не використовуються поточним завданням в процесорі без гіперточок, і особливо, коли процесор затримується, процесор, обладнаний гіперточкою, може використовувати ці ресурси для виконання іншого запланованого завдання. (Процесор може зупинитися через помилку кешу, непередбачувану гілку,

Якщо у вас є система чотирьохядерних ядер, то на повному ядрі кожен може працювати 4 потоки. Якщо у вас двоядерна система гіперточення, то 2 потоки можуть працювати кожним на повному ядрі, але з 4-ма нитками нитки 1 і 2 поділять одне ядро, а нитки 3 і 4 поділять інше ядро. Hyperthreading дозволяє двом потокам працювати паралельно (лише), якщо вони не використовують однакові ресурси процесора. Так що в ідеальному випадку ви можете отримати високу ступінь паралельності, але, як стверджує Вікіпедія, приріст продуктивності становить не 100%, а лише 15-30%.


1

У гіпер-потоці - час простою ядра для завданняA (згадане ядро ​​могло б надіслати запит на диск для отримання даних, зачекайте, поки диск шукатиме площу тарілок, прочитайте дані та відправте їх назад до ядра ) використовується для виконання іншої задачіB. Отже, коли taskB обслуговується так званим потоком 2, і якщо запит на отримання даних за допомогою taskA завершений, taskA все одно повинен чекати, коли ядро ​​закінчить потік 2. Обидва потоки не можуть бути виконані одночасно в одному ядрі. Знову ж таки, HT використовує невідповідність швидкості між ядром / процесором та різними підсистемами вашого комп'ютера. HT використовує ваші ядра на повну потужність ... це як повне використання потужностей. Отже, якщо ви відкриєте чотири вкладки у своєму браузері, кожна вкладка матиме ядро ​​в 4-ядерній системі, а дві вкладки повинні мати спільне ядро ​​в 2-х основній системі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.