Однопоточный Qaud Core против Hyper-Threading Dual Core [дубликат]

10

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

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

Дэвид
источник
3
Даунвот, потому что короткий поиск в Google (Википедия) дал бы ответ.
Вернер Хенце
4
@WernerHenze, хотя то, что вы говорите, правда, мы бы хотели, чтобы люди видели результаты SuperUser, когда они гуглили такие вещи :)
Шекхар

Ответы:

10

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

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

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

Подмастерье Компьютерщик
источник
1
HT процессор будет видеть 15-30% ... Они ключ здесь. HT не заменяет истинное второе ядро ​​(или 2, или 4 и т. Д.)
Остин Т Френч
1
Больше процессоров, с большим количеством ядер, с гиперпоточностью было бы еще лучше ...: D
Келтари
Важно отметить, что главная причина улучшения производительности с HT заключается в том, что процессор редко загружается полностью; то есть один поток редко обрабатывает данные при каждом цикле ЦП. HT позволяет процессору планировать второй поток во время этих неиспользованных циклов. Для переключения между Facebook и электронной почтой это может быть очень эффективным, но чем интенсивнее загрузка каждого потока, тем ниже будет повышение производительности.
Томас
1

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

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

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

Вернер Хенце
источник
1

При гиперпоточности - время простоя ядра для задачи A (упомянутое ядро ​​могло бы отправить запрос на диск для данных, подождать, пока диск выполнит поиск области пластин, прочитать данные и отправить их обратно в ядро ) используется для выполнения другой задачи. Таким образом, когда задача B обслуживается так называемым потоком 2, и если запрос на выборку данных, заданный задачей A, завершен, задача A все еще должна ждать, пока ядро ​​завершит поток 2. Оба потока не могут выполняться одновременно в одном ядре. Опять же, HT использует несоответствие скорости между ядром / процессором и различными подсистемами на вашем компьютере. HT использует ваши ядра на полную мощность ... это похоже на полную загрузку. Таким образом, если вы откроете четыре вкладки в своем браузере, каждая вкладка будет иметь ядро ​​в четырехъядерной системе, а две вкладки должны будут совместно использовать ядро ​​в двухъядерной системе.

Сива
источник