Что значат потоки в процессоре: Процессор: потоки или ядра

Содержание

Процессор: потоки или ядра

На рынке компьютерных комплектующих присутствует немало процессоров, у которых число потоков больше числа физических ядер. В некоторых задачах эти «виртуальные ядра» могут дать существенный прирост в производительности, в других они практически бесполезны.

Многоядерность и гиперпоточность

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

Поток (применительно к процессору), или виртуальное ядро – результат реализации вычислений, при котором одно физическое ядро способно программно разделять свою производительность и работать над несколькими последовательностями команд одновременно. Простыми словами, ЦП делает вид для операционной системы и программ, что у него больше ядер, чем есть на самом деле. Убедиться в этом можно, открыв диспетчер устройств или другую программу для мониторинга комплектующих.

Гиперпоточность позволяет распараллеливать вычисления более эффективно – если одно виртуальное ядро завершило работу над своей задачей и находится в режиме ожидания, его ресурсы может использовать другое. В случаях, когда гиперпоточность не поддерживается, эти ресурсы простаивают. Таким образом, поддержка виртуальных ядер может ускорить выполнение некоторых задач, хотя, разумеется, она не так хороша, как наличие дополнительных физических, и удвоения производительности ожидать не стоит.

Иллюстрация концепции потоков/виртуальных ядер:

Рассмотрим следующий упрощенный пример: если двухъядерный процессор с двумя потоками работает с четырьмя последовательностями команд одновременно, а производительность одного ядра для одной последовательности избыточна, то общая производительность будет ниже, чем в случае, если на месте такого процессора будет вариант с двумя ядрами, но с четырьмя потоками, поскольку на переключение между задачами тратится дополнительное время, и часть ресурсов иногда простаивает. А вот если вычислительных ресурсов одного потока недостаточно для выполнения одной последовательности, то виртуальные ядра почти не помогут – нужны дополнительные физические.

Распараллеливание нагрузки при помощи технологии Intel Hyper-Threading

Немного истории

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

Развитие архитектуры началось с гиперпоточности, а в дальнейшем на одном кристалле производители стали размещать и несколько физических ядер. Сейчас оба основных производителя центральных процессоров для ПК (Intel и AMD) выпускают модели с двумя и более физическими ядрами, как с поддержкой виртуальных ядер, так и без нее.

Потоки или ядра?

Центральный процессор – один из ключевых компонентов системы, влияющих на ее производительность в целевых задачах, а также на удобство использования компьютера. Часто у пользователей, желающих собрать систему, возникает вопрос: на что ориентироваться при выборе ЦП? Стоит ли переплачивать за дополнительные потоки/виртуальные ядра?

Ответ зависит от предполагаемых сценариев использования. В большинстве игр прирост производительности от гиперпоточности окажется минимальным или даже нулевым, а вот добавление физических ядер скажется на частоте кадров явно положительно. Разумеется, если движок игры способен распараллеливать вычисления на такое количество ядер. Многие игры, выпущенные в предыдущие годы, способны работать только с 2-4 ядрами - остальные будут простаивать или заниматься фоновыми программами.

Наибольшую выгоду виртуальные ядра приносят в рабочих задачах, подверженных эффективному распараллеливанию. К ним относятся, например, архивация файлов, обработка фотографий, рендеринг видео, моделирование. Таким образом, польза дополнительных потоков для компьютера, который будет использоваться в первую очередь для игр или медиа, сомнительна. Впрочем, если параллельно с играми будут выполняться и другие задачи, такие как стриминг, запись/обработка видео, скачивание/раздача файлов при помощи торрент-клиента, антивирусная проверка, она возрастает. В подобных ситуациях виртуальные ядра помогают снять фоновую нагрузку с физических.

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

Подытожим: если речь идет о домашнем игровом или мультимедийном компьютере, не стоит ждать чудес от виртуальных ядер, и, если за них придется доплатить ощутимую сумму, лучше рассмотреть вариант с дополнительными физическими, или вложить деньги в другие комплектующие. Если же система будет использоваться для работы – прирост может быть значительным, поэтому стоит ознакомиться с тестами гиперпоточных ЦП для конкретного вида задач.

Что такое Ядра и потоки в процессорах

Практически каждый в современном мире имеет дело с компьютерами и наверняка сталкивался с терминами ядра и потоки. Давайте разберемся что это и так ли хорошо иметь много ядер и потоков. На рынке компьютерных комплектующих присутствует немало процессоров, у которых число потоков больше числа физических ядер. В некоторых задачах эти «виртуальные ядра» могут дать существенный прирост в производительности, в других они практически бесполезны.




Что такое ядро и поток

Ядро – упрощенно это физическая единица процессора, способная в определенно взятый момент времени выполнять одну последовательность команд. Если ядро одно, а команд много, ядро переключается между ними, выполняя задачи поочередно в зависимости от приоритета.

Поток его еще называют иногда виртуальным ядром – результат работы современных технологий (в процессорах производства компании Intel – эта технология называется Hyper Threading, а у компании AMD – SMT технологией), когда ядро, с помощью специальных технологий, способно разделять свою производительность. Выражение одно ядро и два потока говорит о том, что физически одно ядро, но это ядро виртуально делится на два и позволяет распараллеливать задачи и решать их одновременно. То есть при наличии двух сравнительно «простых задач» процессор сможет выполнить их в два раза быстрее, чем обычный процессор с одним ядром. Примером таких задач могут быть скачивание фоном файлов, работа антивируса. Технология создания потоков позволяют делать несколько параллельных вычислительных каналов, что позволяет использовать способности компьютеров более эффективно, так как если одно из виртуальных ядер закончило свою работу, то может присоединиться к работе другого ядра. Производительность повыситься, но повышение будет ограниченно, так как используются ресурсы (тактовая частота измеряется в МГц– то есть вычислительная способность) физического ядра, которое у нас одно. Только используя специальные программы, работающие с гиперпотоком и при правильной оптимизации можно прочувствовать прирост в производительности.

Можно сделать вывод, что при работе с «простыми» задачами одноядерный процессор с двумя потоками по производительности сопоставим с «настоящими» двухъядерными процессорами, но если задачи будут «сложными» например архивация, рендеринг видео, то для увеличения производительности стоит задуматься о приобретении процессора с большим количеством ядер. Так как многоядерные процессоры более предпочтительны для серьезных задач чем многопоточные.

Какой процессор выбрать

При выборе процессора естественно, что встает вопрос как выбрать оптимальное количество ядер и потоков и не переплачивать. Очевидно, что с количеством ядер и потоков стоимость такого процессора будет значительно возрастать. При выборе оптимального процессора, чтобы не переплачивать и чтобы работало все быстро стоит обратить внимание на задачи стоящие перед вашим компьютером:

1) Если компьютер будет офисным для работы без использования серьезных программ, то достаточно 2 «настоящих» ядра. Данный процессор вполне справляется с большинством задач в современных условиях.

2) Если вы собираетесь играть в игры, то многие игры поддерживают 2-4 ядра. Наличие большего количества ядер, не будет ускорять процесс, так как они будут работать в холостую, а учитывая, что в многоядерных процессорах частота у ядер ниже, то вы столкнетесь с тем, что ваш компьютер стоил кучу денег, а в итоге игры тормозят.

3) Если вы используете компьютер в проектировании и обработке видео в своей профессиональной деятельности, то от количества ядер напрямую будет зависеть производительность этого процесса и здесь лучше иметь не меньше 4 ядер. Большее количество ядер будет только преимуществом и если бюджет позволяет, то возьмите хотя бы 8 ядер.

Рекомендации на конкретные модели в зависимости от стоящих перед ним задач:

1. Офисные: Процессоры Intel: Pentium Dual-Core, Core i3 любого поколения; процессоры AMD: A-серии, Ryzen 3 1200.

2. Игровые: Процессоры Intel: Core i3/i5/i7 6-го и выше поколения; процессоры AMD: Ryzen-5/ Ryzen 7.

3. Профессиональные: Процессоры Intel: Core i7 6950X, Core i9 9980XE; процессоры AMD: Threadripper 2920X, Threadripper 2970WX.

Узнать, сколько у вас физических ядер можно, через встроенную утилиту msinfo32.exe

msiinfo32.exe

Как включить виртуальные ядра читайте в этой статье

Другие новости

Что такое потоки и что они делают в процессоре?

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

Поток - это задача, которую должен обработать процессор. Для простого объяснения вы можете предположить, что каждое открываемое вами приложение (такое как рисование, блокнот, медиаплеер) имеет свой собственный поток ... теперь это не означает, что вы можете открыть только 2 приложения одновременно, просто потому, что процессор и операционная система работают так быстро при «переключении потоков», чтобы удовлетворить потребности каждого открытого приложения. Вы просто почувствуете лучшую производительность с большим количеством ядер, потому что теперь вы можете распределить всю работу на большее количество процессоров.

Например, на моем рабочем компьютере установлен i7. I7 имеет 4 физических ядра, но каждое ядро ​​может выполнять «гиперпоточность», что позволяет этому процессору обрабатывать 8 потоков одновременно. Поэтому, если я открою диспетчер задач, я увижу 8 полей для шкалы производительности процессора.

Общее правило заключается в том, что больше физических ядер лучше, чем больше потоков. Так что, если бы вы сравнивали процессоры, которые имели 4 ядра и 4 потока, было бы лучше, чем 2 ядра и 4 потока. Но чем больше потоков может обработать ваш процессор, тем лучше он будет работать при многозадачности, и для некоторых очень интенсивных приложений (редактирование видео, CAD, CAM, сжатие, шифрование и т. Д.) Само по себе будет использовать более одного ядра одновременно.

Процессоры, ядра и потоки. Топология систем / Блог компании Intel / Хабр

В этой статье я попытаюсь описать терминологию, используемую для описания систем, способных исполнять несколько программ параллельно, то есть многоядерных, многопроцессорных, многопоточных. Разные виды параллелизма в ЦПУ IA-32 появлялись в разное время и в несколько непоследовательном порядке. Во всём этом довольно легко запутаться, особенно учитывая, что операционные системы заботливо прячут детали от не слишком искушённых прикладных программ.

Используемая далее терминология используется в документации процессорам Intel. Другие архитектуры могут иметь другие названия для похожих понятий. Там, где они мне известны, я буду их упоминать.

Цель статьи — показать, что при всём многообразии возможных конфигураций многопроцессорных, многоядерных и многопоточных систем для программ, исполняющихся на них, создаются возможности как для абстракции (игнорирования различий), так и для учёта специфики (возможность программно узнать конфигурацию).

Предупреждение о знаках ®, ™, © в статье

Мой

комментарий

объясняет, почему сотрудники компаний должны в публичных коммуникациях использовать знаки авторского права. В этой статье их пришлось использовать довольно часто.

Процессор

Конечно же, самый древний, чаще всего используемый и неоднозначный термин — это «процессор».

В современном мире процессор — это то (package), что мы покупаем в красивой Retail коробке или не очень красивом OEM-пакетике. Неделимая сущность, вставляемая в разъём (socket) на материнской плате. Даже если никакого разъёма нет и снять его нельзя, то есть если он намертво припаян, это один чип.

Мобильные системы (телефоны, планшеты, ноутбуки) и большинство десктопов имеют один процессор. Рабочие станции и сервера иногда могут похвастаться двумя или больше процессорами на одной материнской плате.

Поддержка нескольких центральных процессоров в одной системе требует многочисленных изменений в её дизайне. Как минимум, необходимо обеспечить их физическое подключение (предусмотреть несколько сокетов на материнской плате), решить вопросы идентификации процессоров (см. далее в этой статье, а также мою предыдущую заметку), согласования доступов к памяти и доставки прерываний (контроллер прерываний должен уметь маршрутизировать прерывания на несколько процессоров) и, конечно же, поддержки со стороны операционной системы. Я, к сожалению, не смог найти документального упоминания момента создания первой многопроцессорной системы на процессорах Intel, однако Википедия утверждает, что Sequent Computer Systems поставляла их уже в 1987 году, используя процессоры Intel 80386. Широко распространённой поддержка же нескольких чипов в одной системе становится доступной, начиная с Intel® Pentium.

Если процессоров несколько, то каждый из них имеет собственный разъём на плате. У каждого из них при этом имеются полные независимые копии всех ресурсов, таких как регистры, исполняющие устройства, кэши. Делят они общую память — RAM. Память может подключаться к ним различными и довольно нетривиальными способами, но это отдельная история, выходящая за рамки этой статьи. Важно то, что при любом раскладе для исполняемых программ должна создаваться иллюзия однородной общей памяти, доступной со всех входящих в систему процессоров.


К взлёту готов! Intel® Desktop Board D5400XS
Ядро

Исторически многоядерность в Intel IA-32 появилась позже Intel® HyperThreading, однако в логической иерархии она идёт следующей.

Казалось бы, если в системе больше процессоров, то выше её производительность (на задачах, способных задействовать все ресурсы). Однако, если стоимость коммуникаций между ними слишком велика, то весь выигрыш от параллелизма убивается длительными задержками на передачу общих данных. Именно это наблюдается в многопроцессорных системах — как физически, так и логически они находятся очень далеко друг от друга. Для эффективной коммуникации в таких условиях приходится придумывать специализированные шины, такие как Intel® QuickPath Interconnect. Энергопотребление, размеры и цена конечного решения, конечно, от всего этого не понижаются. На помощь должна прийти высокая интеграция компонент — схемы, исполняющие части параллельной программы, надо подтащить поближе друг к другу, желательно на один кристалл. Другими словами, в одном процессоре следует организовать несколько ядер, во всём идентичных друг другу, но работающих независимо.

Первые многоядерные процессоры IA-32 от Intel были представлены в 2005 году. С тех пор среднее число ядер в серверных, десктопных, а ныне и мобильных платформах неуклонно растёт.

В отличие от двух одноядерных процессоров в одной системе, разделяющих только память, два ядра могут иметь также общие кэши и другие ресурсы, отвечающие за взаимодействие с памятью. Чаще всего кэши первого уровня остаются приватными (у каждого ядра свой), тогда как второй и третий уровень может быть как общим, так и раздельным. Такая организация системы позволяет сократить задержки доставки данных между соседними ядрами, особенно если они работают над общей задачей.

Микроснимок четырёхядерного процессора Intel с кодовым именем Nehalem. Выделены отдельные ядра, общий кэш третьего уровня, а также линки QPI к другим процессорам и общий контроллер памяти.

Гиперпоток

До примерно 2002 года единственный способ получить систему IA-32, способную параллельно исполнять две или более программы, состоял в использовании именно многопроцессорных систем. В Intel® Pentium® 4, а также линейке Xeon с кодовым именем Foster (Netburst) была представлена новая технология — гипертреды или гиперпотоки, — Intel® HyperThreading (далее HT).

Ничто не ново под луной. HT — это частный случай того, что в литературе именуется одновременной многопоточностью (simultaneous multithreading, SMT). В отличие от «настоящих» ядер, являющихся полными и независимыми копиями, в случае HT в одном процессоре дублируется лишь часть внутренних узлов, в первую очередь отвечающих за хранение архитектурного состояния — регистры. Исполнительные же узлы, ответственные за организацию и обработку данных, остаются в единственном числе, и в любой момент времени используются максимум одним из потоков. Как и ядра, гиперпотоки делят между собой кэши, однако начиная с какого уровня — это зависит от конкретной системы.

Я не буду пытаться объяснить все плюсы и минусы дизайнов с SMT вообще и с HT в частности. Интересующийся читатель может найти довольно подробное обсуждение технологии во многих источниках, и, конечно же, в Википедии. Однако отмечу следующий важный момент, объясняющий текущие ограничения на число гиперпотоков в реальной продукции.

Ограничения потоков

В каких случаях наличие «нечестной» многоядерности в виде HT оправдано? Если один поток приложения не в состоянии загрузить все исполняющие узлы внутри ядра, то их можно «одолжить» другому потоку. Это типично для приложений, имеющих «узкое место» не в вычислениях, а при доступе к данным, то есть часто генерирующих промахи кэша и вынужденных ожидать доставку данных из памяти. В это время ядро без HT будет вынуждено простаивать. Наличие же HT позволяет быстро переключить свободные исполняющие узлы к другому архитектурному состоянию (т.к. оно как раз дублируется) и исполнять его инструкции. Это — частный случай приёма под названием latency hiding, когда одна длительная операция, в течение которой полезные ресурсы простаивают, маскируется параллельным выполнением других задач. Если приложение уже имеет высокую степень утилизации ресурсов ядра, наличие гиперпотоков не позволит получить ускорение — здесь нужны «честные» ядра.

Типичные сценарии работы десктопных и серверных приложений, рассчитанных на машинные архитектуры общего назначения, имеют потенциал к параллелизму, реализуемому с помощью HT. Однако этот потенциал быстро «расходуется». Возможно, по этой причине почти на всех процессорах IA-32 число аппаратных гиперпотоков не превышает двух. На типичных сценариях выигрыш от использования трёх и более гиперпотоков был бы невелик, а вот проигрыш в размере кристалла, его энергопотреблении и стоимости значителен.

Другая ситуация наблюдается на типичных задачах, выполняемых на видеоускорителях. Поэтому для этих архитектур характерно использование техники SMT с бóльшим числом потоков. Так как сопроцессоры Intel® Xeon Phi (представленные в 2010 году) идеологически и генеалогически довольно близки к видеокартам, на них может быть четыре гиперпотока на каждом ядре — уникальная для IA-32 конфигурация.

Логический процессор

Из трёх описанных «уровней» параллелизма (процессоры, ядра, гиперпотоки) в конкретной системе могут отсутствовать некоторые или даже все. На это влияют настройки BIOS (многоядерность и многопоточность отключаются независимо), особенности микроархитектуры (например, HT отсутствовал в Intel® Core™ Duo, но был возвращён с выпуском Nehalem) и события при работе системы (многопроцессорные сервера могут выключать отказавшие процессоры в случае обнаружения неисправностей и продолжать «лететь» на оставшихся). Каким образом этот многоуровневый зоопарк параллелизма виден операционной системе и, в конечном счёте, прикладным приложениям?

Далее для удобства обозначим количества процессоров, ядер и потоков в некоторой системе тройкой (xyz), где x — это число процессоров, y — число ядер в каждом процессоре, а z — число гиперпотоков в каждом ядре. Далее я буду называть эту тройку топологией — устоявшийся термин, мало что имеющий с разделом математики. Произведение p = xyz определяет число сущностей, именуемых логическими процессорами системы. Оно определяет полное число независимых контекстов прикладных процессов в системе с общей памятью, исполняющихся параллельно, которые операционная система вынуждена учитывать. Я говорю «вынуждена», потому что она не может управлять порядком исполнения двух процессов, находящихся на различных логических процессорах. Это относится в том числе к гиперпотокам: хотя они и работают «последовательно» на одном ядре, конкретный порядок диктуется аппаратурой и недоступен для наблюдения или управления программам.

Чаще всего операционная система прячет от конечных приложений особенности физической топологии системы, на которой она запущена. Например, три следующие топологии: (2, 1, 1), (1, 2, 1) и (1, 1, 2) — ОС будет представлять в виде двух логических процессоров, хотя первая из них имеет два процессора, вторая — два ядра, а третья — всего лишь два потока.


Windows Task Manager показывает 8 логических процессоров; но сколько это в процессорах, ядрах и гиперпотоках?


Linux top показывает 4 логических процессора.

Это довольно удобно для создателей прикладных приложений — им не приходится иметь дело с зачастую несущественными для них особенностями аппаратуры.

Программное определение топологии

Конечно, абстрагирование топологии в единственное число логических процессоров в ряде случаев создаёт достаточно оснований для путаницы и недоразумений (в жарких Интернет-спорах). Вычислительные приложения, желающие выжать из железа максимум производительности, требуют детального контроля над тем, где будут размещены их потоки: поближе друг к другу на соседних гиперпотоках или же наоборот, подальше на разных процессорах. Скорость коммуникаций между логическими процессорами в составе одного ядра или процессора значительно выше, чем скорость передачи данных между процессорами. Возможность неоднородности в организации оперативной памяти также усложняет картину.

Информация о топологии системы в целом, а также положении каждого логического процессора в IA-32 доступна с помощью инструкции CPUID. С момента появления первых многопроцессорных систем схема идентификации логических процессоров несколько раз расширялась. К настоящему моменту её части содержатся в листах 1, 4 и 11 CPUID. Какой из листов следует смотреть, можно определить из следующей блок-схемы, взятой из статьи [2]:

Я не буду здесь утомлять всеми подробностями отдельных частей этого алгоритма. Если возникнет интерес, то этому можно посвятить следующую часть этой статьи. Отошлю интересующегося читателя к [2], в которой этот вопрос разбирается максимально подробно. Здесь же я сначала кратко опишу, что такое APIC и как он связан с топологией. Затем рассмотрим работу с листом 0xB (одиннадцать в десятичном счислении), который на настоящий момент является последним словом в «апикостроении».

APIC ID

Local APIC (advanced programmable interrupt controller) — это устройство (ныне входящее в состав процессора), отвечающее за работу с прерываниями, приходящими к конкретному логическому процессору. Свой собственный APIC есть у каждого логического процессора. И каждый из них в системе должен иметь уникальное значение APIC ID. Это число используется контроллерами прерываний для адресации при доставке сообщений, а всеми остальными (например, операционной системой) — для идентификации логических процессоров. Спецификация на этот контроллер прерываний эволюционировала, пройдя от микросхемы Intel 8259 PIC через Dual PIC, APIC и

xAPIC

к

x2APIC

.

В настоящий момент ширина числа, хранящегося в APIC ID, достигла полных 32 бит, хотя в прошлом оно было ограничено 16, а ещё раньше — только 8 битами. Нынче остатки старых дней раскиданы по всему CPUID, однако в CPUID.0xB.EDX[31:0] возвращаются все 32 бита APIC ID. На каждом логическом процессоре, независимо исполняющем инструкцию CPUID, возвращаться будет своё значение.

Выяснение родственных связей

Значение APIC ID само по себе ничего не говорит о топологии. Чтобы узнать, какие два логических процессора находятся внутри одного физического (т.е. являются «братьями» гипертредами), какие два — внутри одного процессора, а какие оказались и вовсе в разных процессорах, надо сравнить их значения APIC ID. В зависимости от степени родства некоторые их биты будут совпадать. Эта информация содержится в подлистьях CPUID.0xB, которые кодируются с помощью операнда в ECX. Каждый из них описывает положение битового поля одного из уровней топологии в EAX[5:0] (точнее, число бит, которые нужно сдвинуть в APIC ID вправо, чтобы убрать нижние уровни топологии), а также тип этого уровня — гиперпоток, ядро или процессор, — в ECX[15:8].

У логических процессоров, находящихся внутри одного ядра, будут совпадать все биты APIC ID, кроме принадлежащих полю SMT. Для логических процессоров, находящихся в одном процессоре, — все биты, кроме полей Core и SMT. Поскольку число подлистов у CPUID.0xB может расти, данная схема позволит поддержать описание топологий и с бóльшим числом уровней, если в будущем возникнет необходимость. Более того, можно будет ввести промежуточные уровни между уже существующими.

Важное следствие из организации данной схемы заключается в том, что в наборе всех APIC ID всех логических процессоров системы могут быть «дыры», т.е. они не будут идти последовательно. Например, во многоядерном процессоре с выключенным HT все APIC ID могут оказаться чётными, так как младший бит, отвечающий за кодирование номера гиперпотока, будет всегда нулевым.

Отмечу, что CPUID.0xB — не единственный источник информации о логических процессорах, доступный операционной системе. Список всех процессоров, доступный ей, вместе с их значениями APIC ID, кодируется в таблице MADT ACPI [3, 4].

Операционные системы и топология

Операционные системы предоставляют информацию о топологии логических процессоров приложениям с помощью своих собственных интерфейсов.

В Linux информация о топологии содержится в псевдофайле /proc/cpuinfo, а также выводе команды dmidecode. В примере ниже я фильтрую содержимое cpuinfo на некоторой четырёхядерной системе без HT, оставляя только записи, относящиеся к топологии:

Скрытый текст
[email protected]:~$ cat /proc/cpuinfo |grep 'processor\|physical\ id\|siblings\|core\|cores\|apicid'

processor       : 0
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
processor       : 1
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 1
initial apicid  : 1
processor       : 2
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 2
initial apicid  : 2
processor       : 3
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 3
initial apicid  : 3

В FreeBSD топология сообщается через механизм sysctl в переменной kern.sched.topology_spec в виде XML:

Скрытый текст
[email protected]:~$ sysctl kern.sched.topology_spec
kern.sched.topology_spec: <groups>
 <group level="1" cache-level="0">
  <cpu count="8" mask="0xff">0, 1, 2, 3, 4, 5, 6, 7</cpu>
  <children>
   <group level="2" cache-level="2">
    <cpu count="8" mask="0xff">0, 1, 2, 3, 4, 5, 6, 7</cpu>
    <children>
     <group level="3" cache-level="1">
      <cpu count="2" mask="0x3">0, 1</cpu>
      <flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
     </group>
     <group level="3" cache-level="1">
      <cpu count="2" mask="0xc">2, 3</cpu>
      <flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
     </group>
     <group level="3" cache-level="1">
      <cpu count="2" mask="0x30">4, 5</cpu>
      <flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
     </group>
     <group level="3" cache-level="1">
      <cpu count="2" mask="0xc0">6, 7</cpu>
      <flags><flag name="THREAD">THREAD group</flag><flag name="SMT">SMT group</flag></flags>
     </group>
    </children>
   </group>
  </children>
 </group>
</groups>

В MS Windows 8 сведения о топологии можно увидеть в диспетчере задач Task Manager.

Скрытый текст

Также их предоставляет консольная утилита Sysinternals Coreinfo и API вызов GetLogicalProcessorInformation.

Полная картина

Проиллюстрирую ещё раз отношения между понятиями «процессор», «ядро», «гиперпоток» и «логический процессор» на нескольких примерах.

Система (2, 2, 2)

Система (2, 4, 1)

Система (4, 1, 1)

Прочие вопросы

В этот раздел я вынес некоторые курьёзы, возникающие из-за многоуровневой организации логических процессоров.

Кэши

Как я уже упоминал, кэши в процессоре тоже образуют иерархию, и она довольно сильно связано с топологией ядер, однако не определяется ей однозначно. Для определения того, какие кэши для каких логических процессоров общие, а какие нет, используется вывод CPUID.4 и её подлистов.

Лицензирование

Некоторые программные продукты поставляются числом лицензий, определяемых количеством процессоров в системе, на которой они будут использоваться. Другие — числом ядер в системе. Наконец, для определения числа лицензий число процессоров может умножаться на дробный «core factor», зависящий от типа процессора!

Виртуализация

Системы виртуализации, способные моделировать многоядерные системы, могут назначить виртуальным процессорам внутри машины произвольную топологию, не совпадающую с конфигурацией реальной аппаратуры. Так, внутри хозяйской системы (1, 2, 2) некоторые известные системы виртуализации по умолчанию выносят все логические процессоры на верхний уровень, т.е. создают конфигурацию (4, 1, 1). В сочетании с особенностями лицензирования, зависящими от топологии, это может порождать забавные эффекты.

Спасибо за внимание!

Литература

  1. Intel Corporation. Intel® 64 and IA-32 Architectures Software Developer’s Manual. Volumes 1–3, 2014. www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
  2. Shih Kuo. Intel® 64 Architecture Processor Topology Enumeration, 2012 — software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration
  3. OSDevWiki. MADT. wiki.osdev.org/MADT
  4. OSDevWiki. Detecting CPU Topology. wiki.osdev.org/Detecting_CPU_Topology_%2880x86%29

для чего они нужны и на что влияют

Опубликовано 10.06.2018 автор — 3 комментария

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

Если провести сравнение процессоров разных поколений, то можно заметить одну интересную тенденцию: многопоточность – штука полезная и здорово повышает суммарную производительность системы.

Начнем с того, что каждый современный процессор построен на физических ядрах с определенной частотой. Допустим, 1 ядро имеет тактовую частоту в 3 ГГц, т.е. может выполнить 3 млрд вычислительных операций за секунду (такт). Но современные ОС (Windows, Linux, MacOS) запускают более 3 млрд процессов, т.е. пользователь начинает сталкиваться с таким понятием как прерывание: ЦП физически не успевает обрабатывать все сразу и начинает переключаться на самые приоритетные задачи.

Логика здесь элементарная: присмотреться к многоядерным и многопоточным решениям. Разгон не дает линейного прироста в производительности, иначе такие гиганты как Intel и AMD выпускали бы процессоры на 5–6 и более ГГц.

Польза от повышения частоты есть, но она нивелируется увеличенным энергопотреблением и сокращением срока службы ЦП.

Многопоточность и все о ней

Многие наверняка слышали выражения из серии «2 потока», «4 потока», «8 потоков» и т.д. При этом физических ядер зачастую было в 2 раза меньше.

Эта технология имеет название HyperThreading (Intel) или SMT (AMD).

Многопоточность у красных появилась совсем недавно, с выходом чипов Ryzen на совершенно новом техпроцессе. Что это такое – тема отдельной статьи.

Цель функции заключается в том, что на 1 ядро может одновременно обрабатывать несколько потоков данных. Пока первый поток простаивает, а второй занимается вычислением, запущенное приложение может воспользоваться вакантной логической мощью для своих целей. В результате, прерывания случаются гораздо реже, а вы не ощущаете тормозов и прочих неудобств при работе.

Недостаток технологии заключается в следующем:

  • оба потока обращаются к единой кэш-памяти 2 и 3 уровней;
  • тяжелые вычислительные процессы могут вызвать конфликт в системе.

Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.

Знакомы с понятием Turbo Boost? Процесс кратковременно повышает частоту процессора на несколько сотен мегагерц в особо сложных сценариях, чтобы вы не испытывали проблем при обработке сложных данных.

Сколько нужно ядер и потоков современному обывателю?

Как я уже сказал выше, современные ОС падки на ресурсы процессора, поскольку отнимают часть мощностей на собственные службы, интерфейс, красивости и функции защиты в реальном времени. Но при этом пользователь хочет еще и работать с комфортом.

  • По-хорошему, для офисной работы будет вполне достаточно 2‑ядерных ЦП, но при этом учитывайте, что одновременно работать с браузером, текстовыми редакторами, почтовым клиентом и проигрывателем, не получится – система попросту не справится. А если использовать топологию 2 ядра/4 потока, то ситуация в корне преображается – рук то больше.
  • Игры требуют уже больше ресурсов. Начнем с того, что современные проекты очень падки на ресурсы чипа. Взять к примеру, ту же GTA V или Watch Dogs 2: они способны выжимать все соки из любого камня, поскольку параллельно отрисовывают сцены игры (скрипты), просчитывают окружение, прорабатывают звук, поведение искусственного интеллекта и не только. И все эти процессы еще нужно синхронизировать надлежащим образом.
  • А если копнуть в задачи типа программирования, рендеринга и профессиональной работы с графики, то видно, что здесь и 4‑ядерные/8‑поточные чипы начинают захлебываться и работают на износ.

Вместо итогов

Практика показывает, что современный универсальный ПК должен иметь в своем распоряжении как минимум 4 ядра/8 потоков, чего будет достаточно для большинства задач, связанных с обработкой данных. Хотя варианты из серии 6/12 выглядят более обещающими по той причине, что стоят они не намного дороже, а пользы от них больше.

В качестве «золотой» середины можем предложить свежий вариант модели, построенный на обновленной архитектуре Zen2. Он отлично справляется с играми, программами, распараллеливанием и обработкой данных, при этом отлично гонится(одним словом – стал популярным (появился в июле 2019)).

Надеемся, что вы почерпнули для себя полезную информацию, которая пригодится при подборе процессора для будущей системы. Следите за дальнейшими обновлениями, чтобы не пропустить новые статьи об анатомии ЦП.

С уважением Андрей Андреев

Для чего нужны потоки в процессоре

На рынке компьютерных комплектующих присутствует немало процессоров, у которых число потоков больше числа физических ядер. В некоторых задачах эти «виртуальные ядра» могут дать существенный прирост в производительности, в других они практически бесполезны.

Многоядерность и гиперпоточность

Ядро – это физически обособленная вычислительная единица процессора, способная в один момент времени выполнять одну последовательность команд. Если ядро одно, а последовательностей требуется выполнять несколько, оно быстро переключается между ними, выполняя задачи поочередно.

Поток (применительно к процессору), или виртуальное ядро – результат реализации вычислений, при котором одно физическое ядро способно программно разделять свою производительность и работать над несколькими последовательностями команд одновременно. Простыми словами, ЦП делает вид для операционной системы и программ, что у него больше ядер, чем есть на самом деле. Убедиться в этом можно, открыв диспетчер устройств или другую программу для мониторинга комплектующих.

Гиперпоточность позволяет распараллеливать вычисления более эффективно – если одно виртуальное ядро завершило работу над своей задачей и находится в режиме ожидания, его ресурсы может использовать другое. В случаях, когда гиперпоточность не поддерживается, эти ресурсы простаивают. Таким образом, поддержка виртуальных ядер может ускорить выполнение некоторых задач, хотя, разумеется, она не так хороша, как наличие дополнительных физических, и удвоения производительности ожидать не стоит.

Иллюстрация концепции потоков/виртуальных ядер:

Рассмотрим следующий упрощенный пример: если двухъядерный процессор с двумя потоками работает с четырьмя последовательностями команд одновременно, а производительность одного ядра для одной последовательности избыточна, то общая производительность будет ниже, чем в случае, если на месте такого процессора будет вариант с двумя ядрами, но с четырьмя потоками, поскольку на переключение между задачами тратится дополнительное время, и часть ресурсов иногда простаивает. А вот если вычислительных ресурсов одного потока недостаточно для выполнения одной последовательности, то виртуальные ядра почти не помогут – нужны дополнительные физические.

Распараллеливание нагрузки при помощи технологии Intel Hyper-Threading

Немного истории

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

Развитие архитектуры началось с гиперпоточности, а в дальнейшем на одном кристалле производители стали размещать и несколько физических ядер. Сейчас оба основных производителя центральных процессоров для ПК (Intel и AMD) выпускают модели с двумя и более физическими ядрами, как с поддержкой виртуальных ядер, так и без нее.

Потоки или ядра?

Центральный процессор – один из ключевых компонентов системы, влияющих на ее производительность в целевых задачах, а также на удобство использования компьютера. Часто у пользователей, желающих собрать систему, возникает вопрос: на что ориентироваться при выборе ЦП? Стоит ли переплачивать за дополнительные потоки/виртуальные ядра?

Ответ зависит от предполагаемых сценариев использования. В большинстве игр прирост производительности от гиперпоточности окажется минимальным или даже нулевым, а вот добавление физических ядер скажется на частоте кадров явно положительно. Разумеется, если движок игры способен распараллеливать вычисления на такое количество ядер. Многие игры, выпущенные в предыдущие годы, способны работать только с 2-4 ядрами – остальные будут простаивать или заниматься фоновыми программами.

Наибольшую выгоду виртуальные ядра приносят в рабочих задачах, подверженных эффективному распараллеливанию. К ним относятся, например, архивация файлов, обработка фотографий, рендеринг видео, моделирование. Таким образом, польза дополнительных потоков для компьютера, который будет использоваться в первую очередь для игр или медиа, сомнительна. Впрочем, если параллельно с играми будут выполняться и другие задачи, такие как стриминг, запись/обработка видео, скачивание/раздача файлов при помощи торрент-клиента, антивирусная проверка, она возрастает. В подобных ситуациях виртуальные ядра помогают снять фоновую нагрузку с физических.

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

Подытожим : если речь идет о домашнем игровом или мультимедийном компьютере, не стоит ждать чудес от виртуальных ядер, и, если за них придется доплатить ощутимую сумму, лучше рассмотреть вариант с дополнительными физическими, или вложить деньги в другие комплектующие. Если же система будет использоваться для работы – прирост может быть значительным, поэтому стоит ознакомиться с тестами гиперпоточных ЦП для конкретного вида задач.

Доброго времени суток.

Вы в курсе, что центральные процессоры для компьютера с большим количеством ядер могут уступать в производительности тем, у которых их меньше? Если вы хотите взять мощный CPU, следует учитывать и число потоков в нем. Не знаете, что такое потоки в процессоре? В этой статье вы получите информацию, которая поможет вам в выборе ЦП.

Разберемся в терминологии

Чтобы ни у кого не возникало путаницы в голове, предлагаю разобраться с ключевыми терминами, играющими роль в нашей теме.

Ядро процессора — часть микросхемы, отвечающая за выполнение одного потока команд.
В современных процах, как правило, несколько ядер, каждое из которых имеет собственный кэш первого уровня и общий — второго и третьего. Такое решение позволяет данным быстрее перемещаться между ядрами, когда они работают над одним процессом.

Не путайте с ядром операционной системы, которое координирует доступ программ к ресурсам компьютера.

Поток выполнения — самая малая единица обработки, назначенная ядром ОС, которая разделяет код и контекст процесса. В одном процессе могут действовать сразу несколько потоков и совместно использовать ресурсы CPU.

Технология Hyper-threading

Вы наверняка слышали или догадались из вышесказанного, что чем больше в процессоре ядер и гигагерц, тем он быстрее обрабатывает задачи, которые вы ему даете. Это правда. Но не только ядра влияют на производительность, если речь идет о продуктах бренда Intel.

Компания изобрела технологию под названием «Hyper-threading» (полное — hyper-threading technology, HT либо HTT), которое переводится на русский язык как гиперточность. Она разработана для процев, основанных на микроархитектуре NetBurst.

HT отсутствует в устройствах линейки Core 2, в том числе «Duo» и «Quad». Схожая технология с таким же наименованием внедрена в продуктах Core i3, «i7» и нескольких «i5», а также в некоторые модели серий Itanium и Atom.

Суть «Hyper-threading» заключается в том, что при выполнении задач операционная система определяет одно физическое ядро CPU как два логических. Как вы понимаете, HTT позволяет увеличить скорость работы устройства. И ему можно задавать больше команд одновременно. Более того, если одному логическому ядру дана задача, но он с ней не справляется, а второе при этом бездействует, то последнее помогает первому.

Сколько потоков имеет CPU?

Самый быстрый способ вычислить, сколько потоков содержится в том или ином процессоре — умножить количество ядер надвое (это только если ваш проц поддерживает гипер трэйдинг).

Но если вы не знаете число ядер и хотите определить, сколько потоков имеется в вашем ЦП прямо сейчас, вызовите Диспетчер задач путем зажатия клавиш Ctrl+Alt+Del. Дальнейшие действия зависят от версии операционки, которая у вас установлена.

  • Windows 7? Перейдите на вкладку «Быстродействие».
    Подсчитайте, сколько прямоугольников находится в верхнем ряду. Это число логических ядер, а они и являются потоками.
  • Вы пользуетесь Windows 8, 8.1 или 10? Обратитесь к вкладке «Производительность». Внизу есть строчки «Ядра» — это физические ядра. И ещё есть «Логические процессоры» — это и есть потоки, т.е. числа, которые вас интересуют.

Таким образом. На вышеизложенном скриншоте показан двух ядерный проц, с включенным гипертрэйдингом.

На случай, если у вас вдруг что-то не получилось с Диспетчером задач, есть еще один способ:

  • Зажмите на клавиатуре Win + R;

  • В появившемся окошке впишите команду msinfo32.exe и нажмите «ОК»;
  • В графе «Процессор» вы найдете необходимые данные.

Но тут будут показаны только сами ядра.

В принципе это всё, что я хотел, спасибо за внимание.

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

p, blockquote 1,0,0,0,0 –>

Если провести сравнение процессоров разных поколений, то можно заметить одну интересную тенденцию: многопоточность – штука полезная и здорово повышает суммарную производительность системы.

p, blockquote 2,0,0,0,0 –>

Начнем с того, что каждый современный процессор построен на физических ядрах с определенной частотой. Допустим, 1 ядро имеет тактовую частоту в 3 ГГц, т.е. может выполнить 3 млрд вычислительных операций за секунду (такт). Но современные ОС (Windows, Linux, MacOS) запускают более 3 млрд процессов, т.е. пользователь начинает сталкиваться с таким понятием как прерывание: ЦП физически не успевает обрабатывать все сразу и начинает переключаться на самые приоритетные задачи.

p, blockquote 3,0,0,0,0 –>

Логика здесь элементарная: присмотреться к многоядерным и многопоточным решениям. Разгон не дает линейного прироста в производительности, иначе такие гиганты как Intel и AMD выпускали бы процессоры на 5–6 и более ГГц.

p, blockquote 4,0,1,0,0 –>

Польза от повышения частоты есть, но она нивелируется увеличенным энергопотреблением и сокращением срока службы ЦП.

p, blockquote 5,0,0,0,0 –>

Многопоточность и все о ней

Многие наверняка слышали выражения из серии «2 потока», «4 потока», «8 потоков» и т.д. При этом физических ядер зачастую было в 2 раза меньше.

p, blockquote 6,0,0,0,0 –>

Эта технология имеет название HyperThreading (Intel) или SMT (AMD).

Многопоточность у красных появилась совсем недавно, с выходом чипов Ryzen на совершенно новом техпроцессе. Что это такое – тема отдельной статьи.

p, blockquote 8,0,0,0,0 –>

Цель функции заключается в том, что на 1 ядро может одновременно обрабатывать несколько потоков данных. Пока первый поток простаивает, а второй занимается вычислением, запущенное приложение может воспользоваться вакантной логической мощью для своих целей. В результате, прерывания случаются гораздо реже, а вы не ощущаете тормозов и прочих неудобств при работе.

p, blockquote 9,1,0,0,0 –>

Недостаток технологии заключается в следующем:

p, blockquote 10,0,0,0,0 –>

  • оба потока обращаются к единой кэш‐памяти 2 и 3 уровней;
  • тяжелые вычислительные процессы могут вызвать конфликт в системе.

Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.

p, blockquote 11,0,0,0,0 –>

Знакомы с понятием Turbo Boost? Процесс кратковременно повышает частоту процессора на несколько сотен мегагерц в особо сложных сценариях, чтобы вы не испытывали проблем при обработке сложных данных.

p, blockquote 12,0,0,0,0 –>

Сколько нужно ядер и потоков современному обывателю?

Как я уже сказал выше, современные ОС падки на ресурсы процессора, поскольку отнимают часть мощностей на собственные службы, интерфейс, красивости и функции защиты в реальном времени. Но при этом пользователь хочет еще и работать с комфортом.

p, blockquote 13,0,0,0,0 –>

  • По‐хорошему, для офисной работы будет вполне достаточно 2‐ядерных ЦП, но при этом учитывайте, что одновременно работать с браузером, текстовыми редакторами, почтовым клиентом и проигрывателем, не получится – система попросту не справится. А если использовать топологию 2 ядра/4 потока, то ситуация в корне преображается – рук то больше.
  • Игры требуют уже больше ресурсов. Начнем с того, что современные проекты очень падки на ресурсы чипа. Взять к примеру, ту же GTA V или Watch Dogs 2: они способны выжимать все соки из любого камня, поскольку параллельно отрисовывают сцены игры (скрипты), просчитывают окружение, прорабатывают звук, поведение искусственного интеллекта и не только. И все эти процессы еще нужно синхронизировать надлежащим образом.
  • А если копнуть в задачи типа программирования, рендеринга и профессиональной работы с графики, то видно, что здесь и 4‐ядерные/8‐поточные чипы начинают захлебываться и работают на износ.

p, blockquote 14,0,0,1,0 –>

Вместо итогов

Практика показывает, что современный универсальный ПК должен иметь в своем распоряжении как минимум 4 ядра/8 потоков, чего будет достаточно для большинства задач, связанных с обработкой данных. Хотя варианты из серии 6/12 выглядят более обещающими по той причине, что стоят они не намного дороже, а пользы от них больше.

p, blockquote 15,0,0,0,0 –>

В качестве «золотой» середины можем предложить свежий AMD Ryzen 5 2600 , построенный на обновленной архитектуре Zen+. Он отлично справляется с играми, программами, распараллеливанием и обработкой данных, при этом отлично гонится.

p, blockquote 16,0,0,0,0 –>

Надеемся, что вы почерпнули для себя полезную информацию, которая пригодится при подборе процессора для будущей системы. Следите за дальнейшими обновлениями, чтобы не пропустить новые статьи об анатомии ЦП.

p, blockquote 17,0,0,0,0 –>

p, blockquote 18,0,0,0,0 –> p, blockquote 19,0,0,0,1 –>

16 потоков на частоте 2,5 ГГц VS 8 потоков на частоте 5 ГГц - PC-01

Уже в этом году должны выйти новые консоли у Sony и Microsoft. Они получат новое железо, и, в частности, у них будут APU разработки AMD с 8-ю ядрами и поддержкой SMT. Но в отличие от настольных вариантов будут иметь монолитную компоновку с неизвестной в текущий момент иерархией кеш памяти. А также для снижения тепловыделения у них будет низкая частота: 3,2 и 3,5 ГГц. Сейчас неизвестно есть ли планы внедрения поддержки 120 FPS в консолях, но точно можно говорить о том, что есть нацеленность, по меньшей мере, на 60 FPS. В текущих консолях именно процессорная часть, а не графическая не даёт возможность всем играм дать 60 FPS, снизить качество графики не так сложно, чтобы графика могла выдать больше, но для снижения удельной нагрузки на подготовку кадра пришлось бы вырезать из игры часть механик или существенно уменьшать детализацию игровых миров или скрывать дальние объекты дымкой, что когда-то в играх и делали.

Исходя из низких частот процессора встаёт вопрос- как дела сейчас обстоят в современных играх на 16 потоках в таких условиях? Ну и чтобы было интереснее и было с чем сравнивать я решил сделать тесты двух систем с равной теоретической производительностью. Первая система — это 4-х ядерный, 8 поточный процессор на частота 5 ГГц, а вторая система — это 8 ядерный, 16 поточный процессор с частотой 2,5 ГГц. Для этого я использовал два процессора — i9 9900k и i7 7700k.

Оба эти процессора базируются на одной и той же микроархитектуре Skylake. И оба запущены на одной и той же плате Asus Z170i Pro gaming, прошивка которой не включает в себя исправления аппаратных уязвимостей на процессоры, то есть оба процессора находятся в равных условиях и их можно сравнивать. Но есть и причина того что я взял два процессора, а не отключил ядра в i9. А дело в кеш памяти. Как показало одно из моих прошлых тестированей про удвоение кеша — его объём для игр, когда производительность ограничивается процессором — довольно важен. И рост объёма кеша — это одна из неотъемлемых особенностей роста числа ядер. С одной стороны было желание сделать тесты более приближенные к теоретическим, то есть оставить равный объём кэш памяти, урезав i9 до 4-х ядер, с другой стороны мне всё же интереснее было увидеть более реальную картину.

Ещё одним важным критерием тестов была выборка игр. Я подобрал современные игры. Понятное дело, что в старых играх разница будет огромной в пользу i7 на высокой частоте. И не надо делать никаких тестов чтобы спрогнозировать такой результат. Касаемо новых игр, естественно, i7 на высокой частоте тоже будет впереди, но вопрос — на сколько? Точно не в два раза, как был бы в старых играх.

Оперативная память в тесте была выставлена на частоте 3600 МГц родным XMP профилем моей памяти. То есть и не медленная память и не супер быстрая.

Важно ещё было в играх не отключать никакие процессорозависимые настройки графики, но так как самая производительная графика имеющаяся у меня RTX 2070 не смогла бы полностью быть загруженной с i7 на 5 ГГц, то в играх я использовал максимальные пресеты настроек графики, но в сниженном разрешении или не полным рендерингом кадров и без полноэкранных сглаживаний.

Таким образом можно было не снижая удельную нагрузку на процессор на кадр увеличить FPS так чтобы недостаточно производительная видеокарта не портила результаты. Но даже в таком виде удалось протестировать не все игры. Допустим для RDR2 для достижения необходимой нагрузки пришлось бы снизить настройки которые бы начали влиять на нагрузку на процессор, а в данном тесте очень важно разнообразие применяемых играми технологий, так как зачастую вопрос поддержки многоядерности процессора сводится к разбиению всех задач на различные типы на отдельные потоки, и только часть работы, типа вызовов на отрисовку современные API могут равномерно распределить по всем процессорным ядрам. И если убрать часть графических настроек, то это создаст искусственный перевес в пользу 4-х ядерного процессора, не отражающий реальность.

Поэтому игры где не удавалось получить требуемые условия исключались из тестирования.

Помимо игр я ещё провёл тестирование процессоров в бенчмарках. И получил ожидаемые результаты. В тестах которые мало зависят от оперативной памяти, типа CPU-z и Cb-R15 результаты у процессоров схожи с небольшим перевесом в пользу i9 так как у него всё же больше объём кеша, но в этих тестах перевес не из-за самого объёма, а из-за ПС кеша, так как больше блоков памяти к которым возможен одновременный доступ в i9.

(нажмите для увеличения)

В 7-Zip отрыв i9 ещё чуть выше.

Ну и напоследок ещё посмотрим на разницу в тесте win-rar, который очень любит низкие задержки, которые благодаря большему объёму кешей при равном объме данных сильно ниже у i9, и тут результаты самые показательные.

Тестирование в играх

Помимо обычных графиков времени кадра я ещё записал логи с загрузкой CPU и GPU. Ещё раз напомню, что неполная загрузка процессора на 100% не говорит о том, что процессор загружен не полностью, о том как так выходит было даже отдельное видео.

Так что о предельной нагрузке на процессор можно судить по загрузке видеокарты. Если она ниже 90%, то можно говорить о том, что процессор был загружен предельно возможной для данных условий, и графики загрузки видеокарты я оставляю только для того чтобы вы могли быть уверены, что я не допустил ошибок при тестировании сделав тест видеокарты вместо тестов процессора.

На графиках все данные по i9 показаны сплошными линиями, для i7 — пунктирными.

Процент загрузки видеокарты показан зелёным, процессора — тёмно жёлтым цветом.

Горизонтальная чёрная линия показывает уровень 100% загрузки.

(нажмите для увеличения)

Исходники всех логов и графики можно скачать архивом. (для открытия некоторых файлов необходимо наличие программ msi afterburner и Graph).

Так же мы будем сравнивать и числовые значения результатов тестирования. За 100% будут приняты значения 8 ядерного процессора. И если бы я брал старые игры, которые не способны работать с более чем 8 потоками в принципе, то разница была бы двукратной, или +100 в пользу i7 на более высокой частоте. Иными словами — разница менее 100% будет говорить о том насколько хорошо игра работает с числом потоков более 8. Разница 0% будет говорить о том, что игра работает с 16 потоками в равной степени эффективно как и с 8 потоками.

Правда надо учитывать разную кеш память, опять же возвращаясь к реальным условиям. То есть разница в 0% будет говорить в данном тесте о близости эффективности работы с 8 и 16 потоками, а не о равной эффективности.

Числовые данные мы будем сравнивать по двум параметрам — медианные FPS и меньшие 1% мгновенных FPS обратных от времени кадра (Low 1% mFPS). Важным будут и значения сравнения медианного FPS, опять же уже по ранее сказанному критерию нахождения значений между 0 и 100%, а так же относительные смещения разности долей значений меньших 1% относительно медианного FPS.

То есть, допустим. Если по медианному FPS 4 ядра будут быстрее 8 ядер на 100%, а по значению меньших 1% 4 ядра будет быстрее 8 на 25%, то это будет значить, что с 8 ядрами стабильность фреймрейта выше, чем с 4-мя ядрами.

Far Cry 5

8 ядерный процессор на частоте 2,5 ГГц показал медианный FPS около 87. Тогда как 4-х ядерный на частоте 5 ГГц выдал чуть более 126 FPS. Или примерно на 44,5% больше. По меньшим 1% преимущество 4-х ядерного процессора над 8 ядерным примерно 40%. Разница между 44 и 40 в данном срезывании не значительна. То есть можно говорить о том, что по просадкам и долгим кадрам существенных преимуществ большее число потоков не даёт и разница во всём диапазоне длин кадров примерно 40%.

Предельная загрузка 8 поточного процессора в этой игре находится в диапазоне от 40 до 60%. Предельная загрузка 16 поточного процессора составляет примерно 30%.

Shadow of the Tomb Raider

Для 4-х и 8-ми ядерных решений это 111 и 92 FPS по медианным значениям. И это разница всего около 20%. По меньшим 1% разница и вовсе уменьшается до чуть менее, чем 12%. В данном случае можно говорить о том, что игра близка к тому чтобы максимально эффективно распоряжаться всеми 16-ю потоками процессора. По крайней мере она делает это не сильно хуже, чем с 8-ю потоками.

Если смотреть на графики загрузки процессоров, то 8 поточный временами грузился до 90%, что для 8 потоков отличный показатель. 16 поточный загружался временами выше 80%, что тоже великолепный показатель. Естественно мы не знаем сколько из всего этого времени были простои из-за недостатка данных при работе процессорного конвейера, так как эти простои в данных о загрузки числятся как занятое время, а не свободное. Тем не менее игра отлично справляется с 16-ю потоками.

Tom Clancy’s rainbow six siege

На 4-х ядрах с частотой 5 ГГц — медианный FPS — 277, на 8-ми ядрах с частотой 2,5 ГГц — 212 FPS. Разница около 30%. По меньшему 1% — разница примерно 31,5%. Стабильность фреймрейта в системах примерно идентичная.

Предельная загрузка 8 поточного процессора около 75%, 16 поточного — чуть выше 50%.

Результаты похожи на то что было в первой игре.

Watch Dogs 2

И тут мы видим, что на 8 ядерном процессоре у нас получаются медианные FPS чуть ниже, чем на 4 ядерном примерно на 4%, то есть почти на уровне погрешностей. То есть мы вышли на практически недостижимые 0%. Естественно 0% — это был бы недостижимый уровень, если бы объём и иерархия кеш памяти была бы одинаковая, но так как она не одинаковая, то эта разница немного подыгрывает 8 ядернму i9 от чего мы, собственно, и получили значения близкие к исключительно теоретически возможным.

Тем не менее результаты очень интересные, предлагаю рассмотреть плотность вероятности графиков распределения мгновенного FPS этих тестов.

Видно, что на кадрах с обратной длиной ниже 58 FPS i9 обходит i7. В остальном же диапазоне 4-х ядерный процессор обходит 8-ми ядерный.

Стоит отметить, что это единственная игра со старым API в тесте. И это одна из игр где встречается многопоточная обработка вызовов на отрисовку которая массово появилась уже под конец жизни DX11. При этом задержки на ответ процессора всё такие же долгие как и положено для старых API. При этом игра славиться очень огромным числом вызовов, собственно от чего и имеется жуткая процессорозависимость в этой игре. Видимо тут больший объём сохраняемых ресурсов в кеше помогает лучше справляться i9 с задачей.

Если посмотреть на проценты загрузок процессоров, то можно увидеть что 8-ми поточный процессор был загружен под завязку, да и 16 поточный тоже временами грузился выше 80%. Но, опять же, напомню, что измерители загрузки процессора не умеют отсеивать простои процессора из-за отсутствия данных, а тут, как я уже и говорил, простоев на самом деле из-за старого API очень много. 

The Division 2

Медианные FPS 120 и 168 для i9 и i7 соответственно. 4-х ядерный процессор опережает 8-ми ядерный на 40%. Тогда как по меньшиму 1% разница менее 30%. Это говорит о том, что хоть 8 ядерный процессор и медленнее при одинаковой теоретической производительности, но фремрейт у него более стабильный, что тоже важно.

По нагрузке на процессор на 8-ми потоках видна загрузка временами выше 90%, на 16 потоках редко прыгает до 70%.

World War Z

183 и 242 FPS для 8 и 4-х ядер соответственно. i7 во всём диапазоне длин кадров опережает i9 на примерно 32,5%.

По проценту загрузки у i7 около 80, у i9 чуть ниже 50%.

В общем — ничем не примечательные результаты.

Выводы

Во первых — мы видим, что даже на 2,5 ГГц процессор без проблем вытягивает 60 FPS да ещё и с запасом, в консолях будет не intel, а AMD, но Zen2 в целом показывает схожие производительности на такт в играх со скайлеком.

Конечно многое ещё зависит от подсистемы памяти, которая в консолях будет иная, но в целом — данное видео показывает, что скорее всего все игры на новых консолях будут в 60 FPS и выше.

Касаемо игр перед тем как сделать выводы напомню, что это не случайная выборка игр, я брал именно такие игры, где мы ожидаемо должны были увидеть разницу между процессорами менее, чем двукратной. То есть выводы нельзя распространять на все игры.

В данном случае один только факт того что все игры кроме одной с новыми API уже говорит о не репрезентативности этой выборки.

Тем не менее мы в этом тестировании увидели, что существует некоторое число игр в которых мы не увидели двукратного падения производительности на 16 потоках с двукратно меньшей частотой в сравнении с 8 поточным процессором. И это интересные результаты. Допустим когда я только начал вести канал приходилось с лупой искать хоть какой-то прирост для 8 потоков. Сейчас же и без лупы можно найти прок от 16 потоков в сравнении с 8-ю и не в одной игре. Думаю в текущий момент можно было бы найти даже больше десятка игр где разница была бы сильно меньше 100%.

В общем — прогресс на лицо.

С приходом новых консолей — ситуация будет продолжать развитие в данном направлении.

С другой стороны тут же мы видим и то, что и 8-ми поточный процессор даже в тяжёлых играх выдаёт такой FPS, что приходится для тестов снижать разрешение, то есть бежать обновляться имея на руках 4-х или 6-ти ядерный i7 ещё рано.

Видео на YouTube канале "Этот компьютер"

InfoCAST #047 | Новости о 12-ом поколении Intel, 3D компоновка от AMD...

Инструменты техноблогинга. Чем делаются тесты? Бесплатное ПО от моего канала.

Как собрать свой первый компьютер? Подбор комплектующих, сборка ПК, установка Windows. Всё от А до Я

EK-QuantumX Delta TEC | Пельтье от EKWB и Intel | Обзор и модификация

DLSS против FSR | Качество изображения | Производительность

Linux, Wundows, x86, ARM... Всё смешалось | InfoCAST #046

FSR vs DLSS | Как работает | Графику сравниваю не я, а - ВЫ!

Настройки ниже минимальных при помощи настройки драйверов. Проверяем эффективность.

Как изменились комплектующие за 10 лет?

Эволюция GTX *50* Ti серии | GTX 750 ti vs GTX 1050 ti vs GTX 1650 super | Есть ли прогресс?

InfoCAST #045 | Windows 11 | новые карты от Nvidia | AMD FidelityFX Super Resolution

Видеокарты подешевели? Причины, анализ динамики цен.

Что такое потоки в процессоре компьютера или ЦП?

Потоки - это виртуальные компоненты или коды, которые разделяют физическое ядро ​​ЦП на несколько виртуальных ядер. Одно ядро ​​ЦП может иметь до 2 потоков на ядро.

Например, если ЦП двухъядерный (т. Е. 2 ​​ядра), у него будет 4 потока. И если ЦП является восьмиядерным (т. Е. 8-ядерным), он будет иметь 16 потоков и наоборот.

Рабочий:
Поток создается процессом. Каждый раз, когда вы открываете приложение, оно само создает поток, который будет обрабатывать все задачи этого конкретного приложения.Аналогично, чем больше приложений вы откроете, тем больше будет создано тем.
Потоки всегда создаются операционной системой для выполнения задачи определенного приложения.
В ядре есть один поток (код того ядра, которое выполняет вычисления, также известный как первичный поток), который, когда получает информацию от пользователя, создает другой поток и передает ему задачу. Точно так же, если он получает другую инструкцию, он формирует второй поток и передает ему задачу. Делаем всего две нити.

Пример:
Приложение для смартфона является примером этого, когда вы открываете приложение, он показывает круг, который непрерывно вращается, этот процесс выполняется потоком, созданным только для этой цели, а второй поток загружает информацию и представляет его в графическом интерфейсе пользователя.

Единственным фактом, ограничивающим создание потоков, будет количество потоков, предоставляемых физическим ЦП, и оно варьируется от ЦП к ЦП. Первое изображение - это счетчик загрузки первым потоком, а второе - загрузка графического интерфейса пользователя вторым потоком.



Теперь, в чем польза резьбы?
Потоки стали жизненно важной частью вычислений, поскольку они позволяют процессору выполнять несколько задач одновременно, что ускоряет их выполнение. А также сделать компьютер способным к многозадачности. Только благодаря темам вы можете одновременно просматривать веб-страницы и слушать музыку.

Вниманию читателя! Не прекращайте учиться сейчас. Практикуйте экзамен GATE задолго до самого экзамена с помощью предметных и общих викторин, доступных в курсе GATE Test Series .

Изучите все концепции GATE CS с бесплатными живыми классами на нашем канале YouTube.

Что, черт возьми, такое потоки ЦП?

Так называемые «потоки» были частым источником путаницы для тех, кто сравнивает или покупает процессоры, даже среди людей, использующих нашу основную таблицу сборки. То, что они собой представляют, на самом деле никогда не объясняется, и большинство существующих объяснений дают лишь приблизительное представление или смешивают его с другими вещами.

В конце концов, основное объяснение на удивление простое, так что давайте проясним это раз и навсегда.

Итак, что - это поток?

«Нить» относится к двум вещам, но они тесно связаны друг с другом.

Чаще всего этот термин используется для обозначения потоков в программном обеспечении. Программные потоки - это , с точки зрения ЦП, последовательностей инструкций, которые программное обеспечение использует для выполнения… независимо от того, что делает программное обеспечение. О них можно много поговорить, тем более, что они играют прямую критическую роль в том, как различное количество ядер влияет на производительность программного обеспечения, но это тема для другого дня.

Однако спецификации, которые вы можете увидеть на странице продукта ЦП или на сайтах AMD или Intel, относятся к потокам в оборудовании. Когда речь идет о «потоках», здесь главным источником путаницы являются аппаратные потоки.

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

Итак, количество аппаратных потоков говорит нам, сколько программных потоков может выполняться на ЦП одновременно.

Но, возможно, вы также видели термины «логический процессор» или «виртуальное ядро» или что-то подобное, потенциально в том же контексте, что и аппаратный поток.Это просто взгляд операционной системы (например, Windows, Linux и т. Д.) На аппаратные потоки. Что касается нас, пользователей, на самом деле это одно и то же. Однако не путайте эти два понятия: аппаратные потоки - это вещи, которые реально существуют физически. «Логических процессоров» не существует физически. Операционная система решает запустить определенный программный поток на определенном логическом процессоре, и соответствующий аппаратный поток на определенном ядре запускает этот программный поток. И это конец.

Какое дело с SMT / Hyper-Threading?

Упрощенная схема Hyper-Threading из Википедии (группы цветных прямоугольников аналогичны программным потокам)

Итак, если аппаратные потоки на самом деле ничего не делают сами по себе, почему одновременная многопоточность (называемая Hyper-Threading в Процессоры Intel (вероятно, потому, что Intel любит чувствовать себя особенным) могут повысить производительность?

Короче говоря, SMT / Hyper-Threading влечет за собой одновременное выполнение двух программных потоков на каждое ядро, что дает ядру больше возможностей для работы с .Современные ядра сильны и широки, и архитекторы оборудования очень ими гордятся: один единственный программный поток почти всегда оставляет какое-то мускулистое оборудование, бездействующее. Это похоже на работодателя, у которого слишком много людей для типичной рабочей нагрузки, но иногда эти дополнительные люди могут действительно понадобиться. Сразу две нити? Это отнимает у вас пространство для передышки и делает дела приятными и занятыми.

Итак, если в оборудовании есть что-то особенное, которое уже ограничивает производительность с одним потоком, и это так же плохо или даже ухудшается с двумя потоками, тогда не будет никакой пользы (и в этом случае SMT может фактически быть ущерб).Но это не типичный случай для большинства программ, поэтому SMT является общей функцией.

Кроме того, иногда вы можете видеть, что аппаратные потоки, добавленные с помощью SMT, называются «гиперпотоками» или чем-то подобным. Чтобы было ясно, нет никакой разницы между аппаратными потоками, уже используемыми без SMT, и потоками, добавленными для SMT - они абсолютно одинаковы.

Заключение

По сути, аппаратные потоки - это показатель того, сколько работы может быть выполнено на ЦП за раз.По крайней мере, технически. 8 потоков из 4 ядер с SMT все еще не так полезны, как 8 потоков на 8 ядрах (по крайней мере, при сравнении процессоров за последние несколько лет), поскольку там гораздо меньше аппаратных ресурсов, даже если они могут работать одинаково количество потоков в данный момент.

Помимо того, что вы видите в сравнительных тестах для конкретных целей (например, игр), аппаратные потоки важны в той мере, в какой они влияют на способность вашего процессора выполнять многозадачность. Четырехъядерный ЦП с SMT будет обрабатывать фоновую задачу, такую ​​как кодирование видео, с меньшим потенциальным влиянием на другие задачи, чем аналогичный четырехъядерный ЦП без SMT.Но я отвлекся.

Процессоры могут быть одновременно запутанной и простой темой. Если у вас возникнут дополнительные вопросы, задавайте их в комментариях! А если вы хотите ознакомиться с нашими общими советами по созданию компьютеров для различных бюджетов, перейдите к таблице на нашей домашней странице.

Ядро ЦП, многоядерность, поток, ядро ​​против потоков, гиперпоточность

Что такое параллелизм или одноядерный?

В операционных системах параллелизм определяется как способность системы запускать две или более программ в перекрывающихся временных фазах.Параллельное выполнение с квантованием времени

Как видите, в любой момент времени выполняется только один процесс. Следовательно, параллелизм - это лишь обобщенное приближение реального параллельного выполнения. Такого рода ситуация встречается в системах с одноядерным процессором.

В этом руководстве по параллелизму вы узнаете

Что такое параллельное выполнение или (многоядерный)?

При параллельном выполнении задачи, которые должен выполнять процесс, разбиваются на части, и несколько процессоров (или несколько ядер) обрабатывают каждую подзадачу в одно и то же время.

Параллельное выполнение

Как видите, в любой момент времени все процессы выполняются. На самом деле это подзадачи процесса, которые выполняются параллельно, но для лучшего понимания вы можете визуализировать их как процессы.

Таким образом, параллелизм - это реальный способ одновременной обработки нескольких задач. Подобная ситуация встречается в системах с многоядерными процессорами, к которым относятся почти все современные коммерческие процессоры.

КЛЮЧЕВАЯ РАЗНИЦА

  • Ядра увеличивают объем работы, выполняемой за один раз, тогда как потоки улучшают пропускную способность и ускорение вычислений.
  • Ядра - это реальный аппаратный компонент, тогда как поток - это виртуальный компонент, который управляет задачами.
  • Ядра используют переключение контента, в то время как потоки используют несколько процессоров для работы с многочисленными процессами.
  • Ядрам требуется только блок обработки сигналов, тогда как потокам требуется несколько блоков обработки.

Что такое резьба?

Поток - это единица выполнения при параллельном программировании. Многопоточность - это метод, который позволяет ЦП одновременно выполнять множество задач одного процесса.Эти потоки могут выполняться индивидуально, совместно используя свои ресурсы.

Что такое многопоточность?

Многопоточность относится к общей задаче, которая запускает несколько потоков выполнения в операционной системе. Он может включать в себя несколько системных процессов.

Как работает многопоточность?

Например, большинство современных процессоров поддерживают многопоточность. Простое приложение на вашем смартфоне может дать вам живую демонстрацию того же.

Когда вы открываете приложение, которое требует получения некоторых данных из Интернета, область содержимого приложения заменяется счетчиком.Он будет вращаться до тех пор, пока данные не будут извлечены и отображены.

В фоновом режиме есть два потока:

  • Один извлекает данные из сети и
  • Один отображает графический интерфейс, отображающий счетчик

Оба этих потока выполняются один за другим, создавая иллюзию одновременное исполнение.

Что такое ядро ​​процессора?

Ядро ЦП - это центральная часть его существования или характера. Таким же образом в компьютерной системе центральный процессор также называется ядром.

Существует два основных типа процессоров:

  1. Одноядерный процессор
  2. Многоядерный процессор

В чем заключается основная проблема одноядерного процессора?

В основном с одноядерным процессором возникают две проблемы.

  • Для более быстрого выполнения задач вам необходимо увеличить время на часах.
  • Увеличение времени тактовой частоты увеличивает потребление энергии и тепловыделение до чрезвычайно высокого уровня, что делает процессор неэффективным.

Решение, предоставляемое многоядерным процессором:

  • Создание двух или более ядер на одном кристалле для увеличения вычислительной мощности при сохранении эффективной тактовой частоты.
  • Процессор с двумя ядрами, работающими на эффективной скорости, может обрабатывать инструкции с такой же скоростью, что и одноядерный процессор. Его тактовая частота в два раза выше, но при этом многоядерный процесс потребляет меньше энергии.

Преимущества многоядерного процессора

Вот некоторые преимущества многоядерного процессора:

  • Больше транзисторов на выбор
  • Более короткие соединения
  • Меньшая емкость
  • Маленькая схема может работать на высокой скорости

Разница между Core vs.Потоки

Параметры Ядро Потоки
Определение Ядра ЦП означают фактический аппаратный компонент. Потоки относятся к виртуальному компоненту, который управляет задачами.
Процесс ЦП получает задачи из потока. Следовательно, он обращается ко второму потоку только в том случае, если информация, отправленная первым потоком, не является надежной. Существует множество различных вариантов взаимодействия ЦП с несколькими потоками.
Реализация Достигается за счет операции чередования Выполняется путем обращения в суд за несколькими ЦП
Преимущество Увеличение объема работы, выполняемой за один раз. Повышение производительности и скорости вычислений.
Использовать Ядро использует переключение содержимого Использует несколько процессоров для управления многочисленными процессами.
Требуются блоки обработки Требуется только блок обработки сигналов. Требуется несколько процессоров.
Пример Запуск нескольких приложений одновременно. Запуск поискового робота в кластере.

Что такое Hyper-Threading?

Гиперпоточность была первой попыткой Intel внедрить параллельные вычисления на ПК конечных пользователей. Впервые он был использован в настольных процессорах с Pentium 4 в 2002 году.

Pentium 4 в то время имел только одно ядро ​​процессора. Таким образом, он выполняет только одну задачу и не может выполнять несколько операций любого типа.

Один ЦП с гиперпоточностью отображается как два логических ЦП для операционной системы. В этом случае ЦП один, но ОС рассматривает два ЦП для каждого ядра, а аппаратное обеспечение ЦП имеет один набор ресурсов выполнения для каждого ядра ЦП.

Следовательно, ЦП предполагает наличие нескольких ядер, а операционная система предполагает два ЦП на каждое отдельное ядро ​​ЦП.

Описание:

  • Поток - это единица выполнения при параллельном программировании.
  • Многопоточность относится к общей задаче, которая запускает несколько потоков выполнения в операционной системе.
  • Сегодня многие современные процессоры поддерживают многопоточность.
  • Гиперпоточность была первой попыткой Intel по внедрению параллельных вычислений на ПК конечных пользователей.
  • Ядро ЦП является частью чего-то центрального для его существования или характера
  • В, параллелизм операционной системы определяется как способность системы запускать две или более программ в перекрывающихся временных фазах.
  • При параллельном выполнении задачи, которые должен выполнять процесс, разбиваются на части.
  • Основная проблема одноядерного процессора заключается в том, что для более быстрого выполнения задач нужно увеличивать тактовое время.
  • Multicore решает эту проблему, создавая два или более ядер на одном кристалле для увеличения вычислительной мощности, а также поддерживает тактовую частоту на эффективном уровне.
  • Самым большим преимуществом многоядерной системы является то, что она помогает вам создавать больше транзисторов на выбор.
  • Ядра ЦП означают фактический аппаратный компонент, тогда как потоки относятся к виртуальному компоненту, который управляет задачами.

ядер ЦП против потоков объяснения - в чем разница?

Задумывались ли вы о разнице между ядрами процессора и потоками? Разве это не сбивает с толку? Не волнуйтесь, в этом руководстве мы ответим на все вопросы, касающиеся дебатов о ядрах ЦП и потоках.

Помните, как мы в первый раз брали уроки на компьютере? Чему нас научили в первую очередь? Да, это факт, что центральный процессор - это мозг любого компьютера. Однако позже, когда мы начали покупать собственные компьютеры, мы, казалось, совсем забыли об этом и не особо задумывались о процессоре.В чем может быть причина этого? Один из наиболее важных моментов заключается в том, что мы вообще ничего не знали о процессоре.

Сейчас, в эту цифровую эпоху и с появлением технологий, многое изменилось. Раньше можно было измерить производительность процессора только по его тактовой частоте. Однако все не так просто. В последнее время ЦП имеет такие функции, как несколько ядер, а также гиперпоточность. Они работают лучше, чем одноядерный ЦП с такой же скоростью.Но что такое ядра и потоки ЦП? В чем разница между ними? А что нужно знать, чтобы сделать лучший выбор? Я здесь, чтобы помочь вам. В этой статье я расскажу вам о ядрах и потоках ЦП и расскажу об их различиях. К тому времени, как вы закончите читать эту статью, вам больше ничего не нужно будет знать. Итак, не теряя больше времени, приступим. Продолжайте читать.

Объяснение

процессорных ядер и потоков - в чем разница между ними?

Базовый процессор в компьютере

CPU, как вы уже знаете, означает центральный процессор.ЦП - центральный компонент каждого компьютера, который вы видите, будь то ПК или ноутбук. Короче говоря, любое вычислительное устройство должно иметь внутри процессор. Место, где производятся все вычислительные вычисления, называется CPU. Операционная система компьютера также помогает, давая инструкции и указания.

Теперь у ЦП тоже немало субблоков. Некоторые из них - это блок управления и арифметико-логический блок (ALU). Эти термины носят слишком технический характер и не являются необходимыми для этой статьи.Поэтому мы бы избегали их и продолжали нашу основную тему.

Один ЦП может обрабатывать только одну задачу в любой момент времени. Теперь, как вы понимаете, это не самое лучшее условие, которое вы бы хотели для лучшей производительности. Однако в настоящее время все мы видим компьютеры, которые легко справляются с многозадачностью и по-прежнему обеспечивают отличную производительность. Итак, как это произошло? Давайте рассмотрим это подробнее.

Несколько ядер

Одной из главных причин такой высокой производительности многозадачности является наличие нескольких ядер.Теперь, в первые годы существования компьютеров, процессоры, как правило, были одноядерными. По сути, это означает, что физический процессор содержит только один центральный процессор. Поскольку возникла острая необходимость в повышении производительности, производители начали добавлять дополнительные «ядра», которые являются дополнительными центральными процессорами. В качестве примера: когда вы видите двухъядерный ЦП, вы смотрите на ЦП с парой центральных процессоров. Двухъядерный ЦП может одновременно запускать два процесса.Это, в свою очередь, делает вашу систему быстрее. Причина этого в том, что ваш процессор теперь может выполнять несколько задач одновременно.

Здесь нет никаких других уловок - двухъядерный процессор имеет два центральных процессора, тогда как четырехъядерный процессор имеет четыре центральных процессора на кристалле ЦП, восьмиъядерный процессор - восемь и так далее.

Также читайте: 8 способов исправить системные часы быстро работают Проблема

Эти дополнительные ядра позволяют вашей системе обеспечивать улучшенную и более высокую производительность.Однако размер физического процессора по-прежнему остается небольшим, чтобы он мог поместиться в небольшой сокет. Все, что вам нужно, это один сокет ЦП вместе с одним блоком ЦП, вставленным в него. Вам не нужны несколько сокетов ЦП вместе с несколькими разными ЦП, каждый из которых требует собственного питания, оборудования, охлаждения и многого другого. В дополнение к этому, поскольку ядра находятся на одном кристалле, они могут быстрее обмениваться данными друг с другом. В результате вы получите меньшую задержку.

Гиперпрорезание

Теперь давайте посмотрим на другой фактор, лежащий в основе более быстрой и лучшей производительности наряду с многозадачностью компьютеров - Hyper-threading.Гигант компьютерного бизнеса Intel впервые применил гиперпоточность. С его помощью они хотели добиться параллельных вычислений на потребительских ПК. Эта функция была впервые запущена в 2002 году на настольных ПК с Premium 4 HT. В то время Pentium 4T содержал одно ядро ​​ЦП, что позволяло выполнять одну задачу в любой момент времени. Однако пользователи могли переключаться между задачами достаточно быстро, чтобы это выглядело как многозадачность. Гиперпоточность была предоставлена ​​как ответ на этот вопрос.

Технология Intel Hyper-threading - как ее назвала компания - играет уловку, заставляя вашу операционную систему полагать, что к ней подключено несколько различных процессоров. Однако на самом деле он только один. Это, в свою очередь, делает вашу систему быстрее, а также обеспечивает лучшую производительность. Чтобы вам было еще понятнее, вот еще один пример. Если у вас есть одноядерный процессор вместе с Hyper-threading, операционная система вашего компьютера найдет два логических процессора на месте.Точно так же, если у вас двухъядерный процессор, операционная система будет обманута, полагая, что существует четыре логических процессора. В результате эти логические процессоры увеличивают скорость системы за счет использования логики. Он также разделяет и упорядочивает аппаратные ресурсы исполнения. Это, в свою очередь, обеспечивает максимально возможную скорость, необходимую для выполнения нескольких процессов.

Ядра ЦП против потоков: в чем разница?

Теперь давайте потратим несколько минут, чтобы выяснить, в чем разница между ядром и потоком.Проще говоря, вы можете представить ядро ​​как рот человека, а нити можно сравнить с руками человека. Как вы знаете, рот отвечает за принятие пищи, с другой стороны, руки помогают организовать «рабочую нагрузку». Поток помогает с максимальной легкостью передавать рабочую нагрузку процессору. Чем больше у вас потоков, тем лучше организована ваша рабочая очередь. В результате вы получите повышенную эффективность обработки поступающей с ним информации.

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

Ядра, а также потоки можно найти как в процессорах Intel, так и в AMD.Вы найдете гиперпоточность только в процессорах Intel и больше нигде. Эта функция использует потоки еще лучше. С другой стороны, ядра AMD решают эту проблему, добавляя дополнительные физические ядра. В результате конечные результаты соответствуют технологии Hyper-Threading.

Хорошо, ребята, мы подошли к концу этой статьи. Пора подвести итоги. Это все, что вам нужно знать о ядрах процессора и потоках и в чем разница между ними обоими. Надеюсь, эта статья принесла вам большую пользу.Теперь, когда у вас есть необходимые знания по теме, используйте их как можно лучше. Зная больше о своем процессоре, вы можете максимально эффективно использовать свой компьютер.

Читайте также: Разблокировать YouTube при блокировке в офисах, школах или колледжах?

Итак, вот оно! Вы можете легко закончить дискуссию о ядрах ЦП и потоках , используя приведенное выше руководство. Но если у вас все еще есть какие-либо вопросы относительно этого руководства, не стесняйтесь задавать их в разделе комментариев.

Спросите Ars: что такое поток ЦП?

В 1998 году Ask Ars был одним из первых элементов недавно запущенной Ars Technica. Теперь, как и тогда, все дело в ваших вопросах и ответах нашего сообщества. Каждую неделю мы будем копаться в нашем пакете вопросов, высказывать свое мнение, а затем использовать мудрость наших читателей. Чтобы задать свой вопрос, перейдите на страницу с полезными советами.

Вопрос: Что такое поток ЦП (например, «многопоточный ЦП», «одновременная многопоточность» и т. Д.))?

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

С точки зрения ЦП поток (сокращение от «поток выполнения») - это просто упорядоченная последовательность инструкций, которая сообщает компьютеру, что делать.В большинстве моих статей об Ars и в моей книге я предпочитаю говорить о «потоках инструкций», а не о «потоках», потому что поток - это более сложная и ориентированная на ОС концепция. Что касается большинства процессоров, они просто выполняют любые потоки инструкций, поступающие в их интерфейсную часть, и им все равно, исходит ли этот поток инструкций от процесса или потока. Могут быть некоторые значения регистров специального назначения, которые различаются между ними, но основные функции процессора не меняются.

Итак, когда кто-то говорит о «многопоточном процессоре», они говорят о процессоре, который может выполнять несколько потоков инструкций одновременно. Процессор может выполнять такой подвиг двумя способами: одновременная многопоточность и использование нескольких ядер. Ни один из этих методов не исключает друг друга, и оба часто используются вместе.

Одновременная многопоточность (SMT) - это трюк, позволяющий процессору одновременно работать более чем с одним потоком. Передняя часть процессора чередуется между различными потоками в форме разделения времени, выбирая пакеты инструкций из одного потока, а затем из другого.Фактическое ядро ​​выполнения большинства многопоточных процессоров обычно не знает и не заботится о том, из какого потока команд поступает конкретная инструкция - части машины, которые действительно отслеживают, какая инструкция идет с каким потоком, будут выполнять рутинную работу по удалению правильных инструкций с правильным транслировать.

Реклама

Другой способ создания многопоточного процессора - это разместить более одного процессорного ядра на одном кристалле.Каждый активно выполняющийся поток инструкций назначается одному ядру, поэтому четырехъядерный процессор может поддерживать четыре потока одновременно, или восьмиъядерный процессор может выполнять восемь потоков одновременно, и так далее.

Жизнь нитки

Поток инструкций поступает в ЦП, будучи полученным во внешнем интерфейсе процессора. При первой выборке определенного потока инструкций, например, при загрузке новой программы, инструкции перемещаются из основной памяти в кэш L1 процессора.Затем интерфейсная часть извлекает команды из кэша L1 пакетами и декодирует их во внутренний формат команд процессора.

После того, как инструкции декодированы, они готовы к отправке на исполнительное оборудование чипа, где и происходит фактическое вычисление чисел. Исполнительные блоки выполняют арифметические операции и операции с памятью, указанные в инструкциях, и записывают результаты в регистры процессора.

В неработающем процессоре, где инструкции переупорядочиваются для выполнения в максимально быстрой последовательности, после выполнения есть дополнительный шаг.Команды должны быть возвращены в программный порядок, а их результаты записаны обратно в основную память.

Когда новый поток загружается в процессор, состояние исходного потока сохраняется в основной памяти, а все инструкции исходного потока удаляются из конвейера. Затем новый поток начинается на этапе выборки и декодируется, отправляется и удаляется, как описано выше.

Как Windows использует несколько ядер ЦП?

Читатель недавно связался с нами и задал вопрос, на который стоит ответить в статье.

Как Windows (и, возможно, все ОС) использует преимущества нескольких ядер? В качестве альтернативы, если эта функция встроена в оборудование, как ядра узнают, какие приложения выполнять и когда? Я предполагаю, что чем больше ядер, тем лучше, но как именно это работает? И есть ли способы настроить приложения / Windows, чтобы лучше использовать преимущества большего количества ядер?

Когда вы включаете ПК еще до загрузки ОС, ваш процессор и материнская плата «рукопожатие», за неимением лучшего термина.Ваш ЦП передает определенную информацию о своих рабочих характеристиках в UEFI материнской платы, который затем использует эту информацию для инициализации материнской платы и загрузки системы. Если UEFI не может правильно определить ваш процессор, материнская плата обычно не загружается. Количество ядер ЦП - это одна из характеристик, сообщаемых как UEFI, так и операционной системе.

Один из важнейших компонентов операционной системы называется планировщиком. Планировщик состоит из любого метода, используемого ОС для назначения работы таким ресурсам, как ЦП и ГП, которые затем завершают эту работу.«Единица» работы - наименьший блок работы, которым управляет планировщик ОС, - называется потоком. Если вы хотите провести аналогию, вы можете сравнить поток с одной ступенью на сборочной линии. На шаг выше потока у нас есть процесс. Процессы - это компьютерные программы, которые выполняются в одном или нескольких потоках. В этой упрощенной фабричной аналогии процесс - это вся процедура производства продукта, а нить - это каждая отдельная задача.

Проблема : ЦП могут одновременно выполнять только один поток.Для каждого процесса требуется по крайней мере один поток. Как улучшить производительность компьютера?

Решение : тактовая частота ЦП выше.

На протяжении десятилетий Dennard Scaling был подарком, который продолжал дарить. Закон Мура гласил, что мы сможем упаковать транзисторы в все меньшее и меньшее пространство, но именно масштабирование Деннарда позволило им достигать все более высоких тактовых частот при более низких напряжениях.

Если компьютер работает достаточно быстро, его неспособность обрабатывать более одного потока одновременно становится гораздо меньшей проблемой.Несмотря на то, что существует определенный набор задач, которые нельзя рассчитать за меньшее время, чем ожидаемое время жизни Вселенной на классическом компьютере, существует множество, много, , многие задач, которые можно легко вычислить таким образом.

По мере того, как компьютеры становились все быстрее, разработчики создавали более сложное программное обеспечение. Самая простая форма многопоточности - это грубая многопоточность, при которой операционная система переключается на другой поток, а не сидит без дела в ожидании результатов вычислений.Это стало важным в 1980-х годах, когда тактовые частоты ЦП и ОЗУ начали разделяться, при этом скорость памяти и пропускная способность увеличивались намного медленнее, чем тактовая частота ЦП. Появление кешей означало, что центральные процессоры могли хранить небольшие наборы инструкций поблизости для немедленной обработки чисел, в то время как многопоточность гарантировала, что центральному процессору всегда было чем заняться.

Важный момент: все, что мы обсуждали до сих пор, применимо к одноядерным процессорам. Сегодня термины многопоточность и многопроцессорность часто используются в разговорной речи для обозначения одного и того же, но так было не всегда.Симметричная многопроцессорная обработка и симметричная многопоточность - это разные вещи. Проще говоря:

SMT = ЦП может выполнять более одного потока одновременно, планируя второй поток, который может использовать исполнительные блоки, не используемые в данный момент первым потоком. Intel называет эту технологию Hyper-Threading, а AMD просто SMT. В настоящее время и AMD, и Intel используют SMT для повышения производительности процессора. Обе компании исторически применяли его стратегически, предлагая его на одних продуктах, но не на других.В наши дни большинство процессоров обеих компаний предлагают SMT. В потребительских системах это означает, что у вас есть поддержка количества ядер ЦП * 2 потока, или, например, 8C / 16T.

SMP = Симметричная многопроцессорная обработка. ЦП содержит более одного ядра ЦП (или использует материнскую плату с несколькими сокетами). Каждое ядро ​​ЦП выполняет только один поток. Количество потоков, которые вы можете выполнить за такт, ограничено количеством имеющихся у вас ядер. Написано как 6C / 6T.

Hyper-Threading - это вообще положительный момент для чипов Intel.

Многопоточность в массовом одноядерном контексте используется для обозначения «Как быстро ваш ЦП может переключаться между потоками», а не «Может ли ваш ЦП выполнять более одного потока одновременно?»

«Может ли ваша ОС запускать более одного приложения одновременно без сбоев?» тоже была частая просьба.

Оптимизация рабочей нагрузки и ОС

Современные процессоры, в том числе микросхемы x86, созданные 20 лет назад, реализуют то, что известно как Out of Order Execution, или OoOE.Все ядра современных высокопроизводительных процессоров, включая «большие» ядра смартфонов в big.Little, являются разработками OoOE. Эти процессоры изменяют порядок инструкций, которые они получают в реальном времени, для оптимального выполнения.

ЦП выполняет код, который ему отправляет ОС, но ОС не имеет никакого отношения к фактическому выполнению потока инструкций. Это обрабатывается внутри ЦП. Современные процессоры x86 как переупорядочивают инструкции, которые они получают, так и конвертируют эти инструкции x86 в более мелкие, похожие на RISC микрооперации.Изобретение OoOE помогло инженерам гарантировать определенный уровень производительности, не полагаясь исключительно на разработчиков в написании идеального кода. Разрешение ЦП переупорядочивать свои собственные инструкции также помогает многопоточной производительности, даже в одноядерном контексте. Помните, что ЦП постоянно переключается между задачами, даже когда мы об этом не подозреваем.

ЦП, однако, не выполняет никакого собственного планирования. Это полностью зависит от ОС. Появление многопоточных ЦП этого не меняет. Когда вышла первая потребительская двухпроцессорная плата (ABIT BP6), потенциальным энтузиастам многоядерности пришлось работать либо под Windows NT, либо под Windows 2000.Семейство Win9X не поддерживает многоядерную обработку.

Для поддержки выполнения на нескольких ядрах ЦП требуется, чтобы ОС выполняла все те же задачи по управлению памятью и распределению ресурсов, которые она использует для предотвращения сбоев ОС различными приложениями, с дополнительной защитной полосой, чтобы ЦП не попадали друг в друга.

Современный многоядерный ЦП не имеет «главного планировщика», который назначает работу каждому ядру или иным образом распределяет рабочие нагрузки. В этом роль операционной системы.

Можно ли вручную настроить Windows для более эффективного использования ядер?

Как правило, нет. Было несколько конкретных случаев, когда Windows требовалось обновить, чтобы воспользоваться возможностями, встроенными в новый процессор, но это всегда было чем-то, что Microsoft приходилось выполнять самостоятельно.

Исключения из этой политики немногочисленны и редки, но их немного:

Новые процессоры иногда требуют обновления ОС, чтобы ОС могла в полной мере использовать возможности оборудования.В этом случае ручного варианта нет, если только вы не имеете в виду ручную установку обновления.

AMD 2990WX является исключением из этой политики. ЦП работает довольно плохо под Windows, потому что Microsoft не предполагала существования ЦП с более чем одним узлом NUMA, и он не очень хорошо использует ресурсы 2990WX. В некоторых случаях есть продемонстрированные способы улучшить производительность 2990WX с помощью ручного назначения потоков, хотя я откровенно рекомендую переключиться на Linux, если он у вас есть, просто для общего спокойствия в этой проблеме.

3990X - это даже на больше, чем на теоретически. Поскольку Windows 10 ограничивает группы процессоров до 64 потоков, вы не можете выделить более 50 процентов ресурсов выполнения 3990X на одну рабочую нагрузку, если приложение не реализует настраиваемый планировщик. Вот почему 3990X не рекомендуется для большинства приложений - он лучше всего работает с модулями визуализации и другими профессиональными приложениями, которые сделали этот шаг.

За пределами систем с самым большим количеством ядер, где некоторая ручная настройка теоретически может улучшить производительность, потому что Microsoft еще не оптимизировала для этих сценариев использования, нет, вы ничего не можете сделать, чтобы действительно оптимизировать то, как Windows распределяет рабочие нагрузки.Если честно, вы действительно не хотите, чтобы это было. Конечным пользователям не нужно беспокоиться о ручном назначении потоков для достижения оптимальной производительности, поскольку оптимальная конфигурация будет меняться в зависимости от того, какие задачи процессоры обрабатывают в любой данный момент. Долгосрочная тенденция в проектировании ЦП и ОС направлена ​​на более тесное сотрудничество между ЦП и операционной системой, чтобы лучше упростить управление питанием и режимы турбо.

Примечание редактора: спасибо Брюсу Боркоски за предложение статьи.

Сейчас читаю :

Сколько потоков ЦП у меня есть? Знать свой процессор лучше

Сколько у меня потоков ЦП

«Потоки» в отношении ЦП - это последовательность инструкций, используемых программным обеспечением для работы. Одно ядро ​​ЦП может иметь до двух потоков благодаря процессу, известному как виртуализация . Виртуализация ядер позволяет четырехъядерному процессору работать так, как если бы у него было восемь ядер, при условии, что программа, приложение или программное обеспечение, которое вы используете, рассчитаны на использование дополнительных ядер.Таким образом, производительность ЦП напрямую зависит от количества встроенных ядер. И оснащен ли он многопоточной технологией. Что может заставить вас задуматься: «Сколько у меня потоков ЦП?» Позвольте нам показать вам, как это выяснить.

Определение количества потоков ЦП

Есть несколько способов узнать, сколько потоков ЦП у вас есть.

Метод 1

Если вы используете Windows, самый простой способ - через диспетчер задач. Нажмите Ctrl + Shift + Delete на клавиатуре и выберите «Диспетчер задач», затем перейдите на вкладку «Производительность».

Здесь вы найдете разбивку производительности процессора, памяти и жестких дисков вашего ноутбука. В разделе ЦП вы найдете такие данные, как базовая скорость, количество ядер и логических процессоров.

Количество логических процессоров - это общее количество потоков на вашем ЦП. Их также называют виртуальными ядрами; здесь все может немного запутаться.

Hyperthreading

Чтобы упростить понимание, приведем пример: процессор Intel Core i5 11600K - один из самых популярных процессоров на рынке.Он оснащен 6 ядрами и технологией многопоточности, которую Intel продает как Hyperthreading. По сути, это означает, что каждое ядро ​​может обрабатывать 2 потока данных одновременно.

Итак, 6 ядер, каждое из которых может обрабатывать 2 потока = 12 потоков всего. Это означает, что если мы посмотрим на наш диспетчер задач, мы найдем 12 логических процессоров. И мы будем знать, что в нашем ноутбуке 12 потоков ЦП.

12 логических процессоров будут работать так, как если бы они были 12 физическими ядрами вашего портативного компьютера, в результате виртуализации, которая является частью технологии многопоточности.Если такой технологии нет, у вас будет 6 физических ядер и 6 логических процессоров.

Метод 2

Существует также независимый от ОС способ определения количества потоков в вашем процессоре. Вы можете либо погуглить название вашего процессора, чтобы посмотреть его характеристики. Или проверьте данные об общем количестве потоков в пакете, в котором находится ваш процессор.

Почему имеет значение количество потоков ЦП?

Если у вас два процессора с одинаковым количеством ядер, количество потоков процессора будет играть важную роль в различении обоих модулей.

Например, если вы разместите два двухъядерных процессора рядом друг с другом, вы можете обнаружить, что один процессор значительно превосходит другой. Вероятно, это связано с тем, что первый двухъядерный процессор имеет 4 потока ЦП, а второй - только 2.

Вы также можете использовать количество потоков, чтобы получить представление о возрасте оборудования. Двухъядерные и двухпоточные процессоры устарели и не справятся с большинством современных программ. Также устарели процессоры с 2 ядрами и 4 потоками.Хотя большее количество физических ядер будет нести собственный вес в более требовательных программах.

С другой стороны, новейшие процессоры с 2 ядрами и 4 потоками могут использовать новые технологии и работать более эффективно. Вы можете найти эти процессоры в своем среднем современном ноутбуке. Но на настольных компьютерах им будет не хватать производительности.

Мы считаем процессоры с 4 ядрами и 8 потоками лучшим выбором с точки зрения производительности. У них не только четыре физических ядра. Но они также имеют вдвое большее количество потоков или, что еще называют, виртуальных ядер.

Итак, как правило, если ваш компьютер имеет менее 4 потоков. Возможно, пришло время начать поиск нового процессора. Если он имеет 6 или более потоков, у вас, вероятно, есть довольно приличное оборудование, на котором можно запускать большинство программ.

Всегда ли количество потоков в два раза превышает количество ядер?

Ну, краткий ответ - нет. Хотя в наши дни так бывает почти всегда.

Раньше у ЦП было только одно физическое ядро. Каждое ядро ​​могло обрабатывать данные по одному потоку за раз.Это означало, что чем выше частота вашего процессора, тем быстрее ваш процессор.

Позже была изобретена одновременная многопоточность (SMT), которая изменила все! SMT позволяет процессору выполнять 2 потока как 1 поток. Проще говоря, каждое ядро ​​может одновременно выполнять 2 потока. Таким образом, двухъядерный процессор с 2 физическими ядрами может практически работать как 4 логических процессора.

Если вы используете процессоры Intel, эта технология называется Hyperthreading. Если вы используете процессоры AMD, это называется Clustered Multi-Threading (CMT).Принцип остается неизменным в любом сценарии.

Существует несколько причин, по которым ваши ядра могут иметь одинаковое количество логических процессоров. Во-первых, конечно, старые технологии. Если у вас есть старый ноутбук с процессором старого поколения, существует вероятность, что вы не сможете запускать потоки одновременно. Опять же, вы можете обратиться к странице продукта процессора для получения дополнительной информации.

Некоторые технические специалисты намеренно отключают свою технологию многопоточности в BIOS, в результате чего количество физических ядер совпадает с количеством логических ядер.Это подводит нас к важному вопросу.

Будет ли большее количество потоков ЦП способствовать повышению производительности?

В общем да. Чем больше элементов присутствует на вашем экране, тем больше потоков будет назначено вашей операционной системой процессору.

Однако из этого правила есть исключения. Некоторые приложения просто не поддерживают многопоточную обработку. Например, если вы откроете Блокнот на своем ноутбуке, производительность будет такой же, потому что это однопоточная программа.Пара одинаково производительных процессоров с разным количеством логических процессоров по-прежнему будут вести себя в Блокноте одинаково.

Другой пример - Google Chrome. До того, как программное обеспечение стало многопоточным, загрузка 20 вкладок на экране занимала несколько минут. Теперь вы можете загрузить на свой экран более 100 вкладок всего за несколько секунд, и все они будут работать. Это связано с тем, что он может использовать преимущества многопоточной технологии вашего ЦП - теперь он может лучше распределять свою рабочую нагрузку.

Hyperthreading ON vs Hyperthreading OFF

Мы все можем согласиться с тем, что ноутбук с гиперпоточностью будет работать более эффективно, чем ноутбук без гиперпотоков. Для большинства программ включение гиперпоточности дает огромные преимущества с точки зрения производительности.

Тем не менее, гиперпоточность может негативно повлиять на некоторые программы. Если вы увлекаетесь играми, во многих играх минимальная частота кадров в секунду (FPS) выше при отключенной гиперпоточности. Поскольку гиперпоточность не предназначена для использования в видеоиграх, эффект гиперпоточности становится незначительным, а иногда даже ухудшает производительность.

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

Наконец, если вы планируете разогнать процессор, чего вы, вероятно, не сделаете. Вам следует держаться подальше от гиперпоточности. Вы можете эффективно достичь более высоких тактовых частот, используя меньшее количество виртуальных ядер.

Являются ли потоки ЦП решающим фактором производительности?

Нет, совсем нет. Если вы хотите сравнить процессоры, есть только один правильный способ сделать это: просмотреть тесты производительности и определить, какой процессор быстрее выполняет вашу любимую программу.

Теоретически у вас может быть процессор с большим количеством потоков ЦП, который использует устаревшую архитектуру и работает с низкой тактовой частотой. В этом случае нет смысла выбирать самую последнюю и лучшую версию.

Опять же, потоки ЦП позволяют лучше понять технологию, предлагаемую внутри микросхемы процессора. Если они в два раза больше физических ядер, значит, ваш процессор использует многопоточность. Это означает, что он может обрабатывать данные со стабильной скоростью и значительно ускоряет такие рабочие нагрузки, как рендеринг в Blender, редактирование видео и тяжелая многозадачность.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *