Однопоточный Qaud Core против Hyper-Threading Dual Core

22229
David

Допустим, у нас есть два процессора: один - четырехъядерный 3,2 ГГц с 4 ядрами, а у нас - двухъядерный 3,2 ГГц с 2 ядрами с 2 потоками в каждом ядре (Hyper-Threading). Мое предположение как программиста будет таким: 4 ядра 4 потока должны работать быстрее, чем 2 ядра 4 потока, так как второму ЦП необходимо переключаться между потоками, чтобы эмулировать 4 ядра, тогда как первому не нужно выполнять такое переключение, как каждое ядро можно выполнять самостоятельно и индивидуально.

Я хочу подтвердить, что мое предположение верно, если нет, пожалуйста, объясните, почему одно лучше, чем другое.

9
Даунвот, потому что короткий поиск в Google (Википедия) дал бы ответ. Werner Henze 10 лет назад 3
@WernerHenze, хотя то, что вы говорите, правда, мы хотели бы, чтобы люди увидели результаты SuperUser, когда они Google такие вещи :) Shekhar 10 лет назад 3

3 ответа на вопрос

9
Journeyman Geek

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

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

Чем больше актуальных ядер, тем лучше.

HT процессор будет видеть 15-30% ... Они ключ здесь. HT не является заменой настоящего второго ядра (или 2, или 4 и т. Д.) Austin T French 10 лет назад 1
Больше процессоров, больше ядер, с гиперпоточностью было бы еще лучше ...: D Keltari 10 лет назад 1
Важно отметить, что главная причина улучшения производительности с HT заключается в том, что ЦП редко загружается полностью; то есть один поток редко обрабатывает данные при каждом цикле ЦП. HT позволяет процессору планировать второй поток во время этих неиспользованных циклов. Для переключения между фейсбуком и электронной почтой это может быть очень эффективным, но чем интенсивнее ЦП каждого потока, тем ниже будет повышение производительности. Thomas 7 лет назад 0
1
Werner Henze

Из Википедии :

Гиперпоточность работает путем дублирования определенных разделов процессора - тех, которые хранят архитектурное состояние - но не дублирует основные ресурсы выполнения. Это позволяет гиперпоточному процессору отображаться как обычный «физический» процессор и дополнительный «логический» процессор для операционной системы хоста (HTT-незнающие операционные системы видят два «физических» процессора), позволяя операционной системе планировать два потока или обрабатывает одновременно и соответственно. Когда ресурсы выполнения не будут использоваться текущей задачей в процессоре без гиперпоточности, и особенно когда процессор остановлен, процессор, оборудованный гиперпоточностью, может использовать эти ресурсы выполнения для выполнения другой запланированной задачи. (Процессор может зависнуть из-за отсутствия кэша, неправильного прогнозирования ветвлений,

Если у вас есть четырехъядерная система, то каждый из четырех потоков может работать на одном ядре. Если у вас есть двухъядерная система гиперпоточности, то 2 потока могут работать каждый на полном ядре, но с 4 потоками потоки 1 и 2 будут разделять одно ядро, а потоки 3 и 4 - другое ядро. Гиперпоточность позволяет двум потокам работать параллельно (только), если они не используют одни и те же ресурсы процессора. Таким образом, в идеальном случае вы можете получить высокую степень распараллеливания, но, как утверждает Википедия, прирост производительности составляет не 100%, а только 15-30%.

1
Siva

In hyper-threading, the idle time of the core for taskA(the said core could have sent a request to the disk for data, wait for the disk to seek the area of the platters, read the data and send it back to the core) is exploited to perform another taskB. So, when taskB is being serviced by the so called thread 2, and if data fetch request by taskA is completed, taskA still have to wait for the core to finish thread 2. Both threads cannot be executed simultaneously in one core. Again, HT exploits the speed mismatch between the core/processor and the various subsystems in your computer. HT uses your cores to full capacity...it is like full capacity utilisation. So, if you open four tabs in your browser, each tab will have a core in a 4 core system and two tabs will have to share a core in a 2 core system.

Похожие вопросы