Процессоры, потоки и процессы: ПК ждет многоядерное будущее?
https://itc.ua/wp-content/uploads/2022/08/photo_2022-09-30_11-43-02-e1664550777584-96×96.jpg *** https://itc.ua/wp-content/uploads/2022/08/photo_2022-09-30_11-43-02-e1664550777584-96×96.jpg *** https://itc.ua/wp-content/uploads/2022/08/photo_2022-09-30_11-43-02-e1664550777584-96×96.jpg
Автор статей и обзоров
Многие десятилетия все процессоры имели только одно ядро и один поток. Прошло немало времени до появления первых Dual Core CPU. Теперь у вас может быть 8, 12, 16 или больше ядер в ЦП домашнего компьютера. Современные ПК имеют процессоры, которые могут одновременно обрабатывать множество потоков. Все благодаря разработкам в области проектирования и производства микросхем. Но что такое потоки и почему так важно, чтобы ЦП мог обрабатывать более одного потока? В этой статье читатель найдет ответ на эти и другие вопросы.

Более 20 детей из Мариуполя благодаря вам получили технику для учебы — итоги сбора подари старое «железо»
Что такое поток?
Проще говоря, поток процессора — набор данных, кратчайшая последовательность инструкций, необходимая для выполнения вычислительной задачи. Это может быть очень короткий список, но он также может быть огромным по длине. Что влияет на это, так это процесс, частью которого являются потоки (как показано ниже).

Итак, теперь у нас есть новый вопрос, на который нужно ответить (т.е. что такое процесс?), но, к счастью, решить его так же легко. Если вы используете Windows на своем компьютере, нажмите клавишу Windows и X и выберите «Диспетчер задач» из появившегося списка.
По умолчанию он открывается на вкладке «Процессы», и вы должны увидеть длинный список процессов, запущенных в данный момент на вашем компьютере. Некоторые из них будут отдельными программами, работающими сами по себе без участия пользователя.

Другие будут приложением, которым вы можете управлять напрямую. Некоторые из них могут генерировать дополнительные фоновые процессы — задачи, которые выполняются за кулисами по указанию основной программы.
Если вы переключитесь на вкладку «Производительность» в диспетчере задач, а затем выберите раздел ЦП, вы увидите, сколько процессов в настоящее время выполняется, а также общее количество активных потоков.
Експертний курс від laba: Стратегічний маркетинг.
Розвивайте бізнес з глибоким пониманням ринку.
Каждый раз, когда процесс хочет получить доступ к файлу, будь то в ОЗУ или на накопителе, создается дескриптор файла. Каждый из них уникален для создавшего его процесса, поэтому один файл может иметь множество дескрипторов.
Возвращаясь к потокам, «Диспетчер задач» мало что говорит о них — например, количество потоков, связанных с каждым процессом, не отображается. К счастью, у Microsoft есть еще одна программа под названием Process Explorer, которая поможет в этом.

Здесь мы можем увидеть гораздо более подробный обзор различных процессов и их потоков.
Обратите внимание на то, как некоторые программы генерируют относительно небольшое количество последовательностей инструкций (например, хост плагин Corsair iCUE имеет только одну), в то время как другие программы исчисляются сотнями, например, процесс System.
Именно операционная система генерирует большинство этих потоков. Затем ОС приступает к созданию и управлению ими самостоятельно.
Центральный процессор
Конечным пунктом назначения для любого потока является центральный процессор (ЦП). Это устройство берет список инструкций, переводит их на «язык», который он понимает, а затем выполняет предписанные задачи.
Глубоко в недрах процессора специальное оборудование хранит потоки для их анализа, а затем сортирует их список инструкций таким образом, чтобы наилучшим образом соответствовать тому, что процессор делает в данный момент времени.

Даже в старых процессорах Pentium инструкции потоков могут быть немного переупорядочены, чтобы максимизировать производительность. Современные ЦП содержат чрезвычайно сложные инструменты управления потоками из-за огромного количества потоков, которыми они должны управлять.
Если поток содержит последовательность инструкций «Если…тогда…иначе», схема прогнозирования оценивает наиболее вероятный результат. Затем ответ на это предположение заставляет ЦП копаться в своем хранилище инструкций, а затем выполнять те, которые требуются для логического решения.
Если «прогноз» был верным, то заметное количество времени экономится от необходимости ждать обработки всего потока. Если нет, то это не так уж и хорошо — вот почему разработчики процессоров усердно работают над этим! Современный процессор самостоятельно выбирает наиболее нужный поток данных для обработки в определенный момент времени.

Серверные процессоры Intel первой половины 90-х годов
Центральные процессоры 1990-х годов, будь то настольные или серверные, имели только одно ядро, поэтому могли работать только с одним потоком за раз, хотя они могли выполнять несколько инструкций одновременно (известные как суперскалярные).
Професійний курс від skvot: Системний геймдизайн.
Розробка ігор знати як.
Серверам и рабочим станциям высокого уровня приходится иметь дело с огромным количеством потоков, а машины эпохи Pentium обычно имели два ЦП, чтобы справиться с рабочей нагрузкой. Однако идея, что процессор может обрабатывать несколько потоков одновременно, существовала уже довольно давно. Современные сервера также используют несколько процессоров на одной материнской плате.
Идея ЦП, выполняющего более одной инструкции потока в своем ядре, также известная как одновременная многопоточность (SMT), должна была подождать. Прошло немало времени для того, чтобы возможности оборудования позволили реализовать такую технологию.

Архитектура Intel Northwood принесла многопоточность в массы. 1 ядро, 2 потока в Intel Pentium 4
Это было достигнуто к 2002 году, когда Intel выпустила новую версию процессора Pentium 4. Это был первый ЦП для настольных ПК, полностью совместимый с SMT, с функцией, получившей название технологии Intel Hyper-Threading. Все современные процессоры являются его наследниками.
Мультизадачность
Так как же одно ядро процессора работает с двумя потоками одновременно? Думайте о процессоре как о сложной фабрике, состоящей из нескольких этапов: получение и организация исходных материалов (т. е. данных), затем сортировка заказов (потоков), разбивая их на множество более мелких задач.

Точно так же, как линия по производству автомобилей в больших объемах будет работать с различными деталями, одной или двумя за раз, ЦП должен выполнять различные задачи в заданной последовательности, чтобы выполнить заданный набор инструкций.
Так работает конвейер, различные этапы не всегда будут заняты. Некоторым данным приходится некоторое время ждать, пока не будут выполнены предыдущие шаги.
Здесь в игру вступает SMT (Simultaneous multithreading). Аппаратное обеспечение, предназначенное для отслеживания состояния каждой части «конвейера», используется для определения того, может ли другой поток использовать незанятые этапы без остановки текущего потока.
Програмний курс від robotdreams: С++ для GameDev.
Розробка ігор на високому рівні.
Тот факт, что процессоры для настольных ПК стали многопоточными задолго до того, как они стали многоядерными, показывает, что SMT гораздо проще реализовать. В случае с архитектурой Intel Northwood для управления двумя потоками было задействовано менее 5% всего кристалла.
Ядра ЦП, поддерживающие SMT, организованы таким образом, что для операционной системы они отображаются как отдельные логические ядра. Физически они используют одни и те же ресурсы, но действуют независимо.
ЦП для настольных ПК обрабатывают не более двух потоков на ядро ЦП, потому что их конвейеры относительно короткие и простые, а анализ, проведенный разработчиками, показал бы, что два — это оптимальный предел. Поэтому мы до сих пор не видим в домашних компьютерах 8 ядер — 24 потока и т.д.

ЦП IBM Power10 — 15 SMT8 cores
На противоположном конце спектра огромные серверные процессоры, такие как чипы Intel Xeon Phi или новейшие процессоры IBM POWER, обрабатывают 4 и 8 потоков на ядро соответственно. Это потому, что их ядра содержат множество конвейеров с общими ресурсами.
Эти разные подходы к проектированию ЦП возникают из-за очень разных рабочих нагрузок, с которыми приходится иметь дело чипам.
Центральные процессоры — не единственные микросхемы в компьютере, которым приходится иметь дело с большим количеством потоков. Есть один чип с очень специфической ролью, который обрабатывает тысячи потоков одновременно.
Видеокарты
Когда дело доходит до чрезмерных цифр, процессоры полностью проигрывают видеокартам. Они физически больше, имеют гораздо больше транзисторов, потребляют больше энергии и обрабатывают гораздо больше потоков, чем любой серверный процессор.

Видеокарта начального уровня быстрее обрабатывает данные чем 32-ядерный современный процессор AMD Ryzen
Возьмем, к примеру, видеокарту AMD Radeon RX 6800 с чипом Navi 21. Этот процессор состоит из 60 вычислительных блоков (CU), каждый из которых должен одновременно обрабатывать 64 отдельных потока. Это 3840 потоков!
Так как же GPU справляется с гораздо большими задачами, чем центральный процессор?
Каждый CU имеет два набора блоков SIMD (одна инструкция, несколько данных), и каждый из них может работать с 32 отдельными элементами данных одновременно. Все они могут быть из разных потоков, но загвоздка в том, что модуль должен выполнять одну и ту же инструкцию в каждом потоке.
В этом ключевое отличие от ЦП — там, где ядро процессора для настольных ПК будет обрабатывать не более двух потоков, инструкции могут быть совершенно другими, из совершенно несвязанных процессов.

Графические процессоры предназначены для выполнения одних и тех же операций снова и снова, как правило, из одних и тех же процессов (технически они известны как ядра, но мы оставим это в стороне), но все это выполняется параллельно.
Как и в случае с IBM POWER10, процессором, предназначенным только для корпоративных серверов, графический адаптер создан для выполнения очень специализированной задачи.
Крупнейшие современные игры с их сложными 3D-изображениями требуют невероятного количества математических вычислений всего за несколько миллисекунд. А для этого нужны потоки в огромном количестве.
Нужно больше потоков
Если вы взглянете на любой обзор ЦП, вы почти всегда увидите два результата Cinebench, теста, который выполняет сложную задачу рендеринга на основе ЦП.

Один результат относится к тесту, использующему только один поток, тогда как другой будет использовать столько потоков, сколько всего может обработать ЦП. Результаты последнего всегда намного быстрее, чем у однопоточного теста. Почему это так?
Cinebench рендерит 3D-графику, как в игре, только один кадр с высокой детализацией. И если вы вспомните, как графические процессоры выполняют множество потоков параллельно для создания 3D-графики, становится очевидным, почему процессоры с большим количеством ядер, особенно с SMT, так быстро справляются с рабочей нагрузкой. Это один из немногих сценариев, где можно реализовать все ядра/потоки процессора.
К сожалению, добавление большего количества ядер просто делает процессор больше и, следовательно, более дорогим, поэтому может показаться, что SMT всегда будет хорошей технологией. Однако многое зависит от ситуации.
Например, процессор AMD Ryzen 9 3950X (12-ядерный процессор с 24 потоками) в 36 различных играх с включенным SMT и без него показывает разные результаты. В некоторых играх производительность будет лучше на 10-16% с включенным SMT, в то время у других хуже на 10-12 %.
Средняя разница, тем не менее, составляла всего 1%, так что это, конечно, не тот случай, когда SMT всегда следует отключать во время игр. Но это вызывает еще несколько вопросов.
Во-первых, почему игра работает на 12% медленнее, если ядра ЦП одновременно обрабатывают два потока? Ключевая фраза здесь — «конфликт за ресурсы».

Чем больше потоков может обрабатывать ЦП, тем более важной становится система кэширования в процессоре. Это становится очевидным при изучении процессоров с фиксированным размером кэша L3, независимо от того, сколько ядер активировано.
Чем больше ядер и потоков у чипа, тем большее количество запросов к кешу приходится обрабатывать системе. И это подводит нас к следующему вопросу: поэтому большинство игр не умеет работать с большим количеством потоков/ядер?
Почему игры не используют много потоков?
Вернемся к Process Explorer и посмотрим на несколько игр, а именно Cyberpunk 2077, Spider-Man Remastered и Shadow of the Tomb Raider. Все три были разработаны для ПК и консолей, поэтому можно ожидать, что они будут использовать от 4 до 8 потоков.

На первый взгляд, в играх действительно используется множество потоков. Но невозможно, поскольку процессор, используемый в компьютере, на котором запущены игры, поддерживает максимум 8 потоков. Но если мы углубимся в потоки процесса, мы получим гораздо более ясную картину. Давайте посмотрим на Shadow of the Tomb Raider.
Ниже мы видим, что подавляющее большинство этих потоков почти не занимают время выполнения ЦП (второй столбец, отображаемый в секундах). Хотя процесс и ОС создали более сотни потоков, большинство из них выполняются слишком быстро, чтобы даже зарегистрироваться.

Дельта-количество циклов — это общее количество циклов ЦП, накопленных потоком в процессе, и в случае с этой игрой в нем преобладают всего два потока. Тем не менее другие по-прежнему используют все доступные ядра процессора.
Может показаться, что количество тактов — смешное число, но если процессор имеет тактовую частоту, скажем, 4,5 ГГц, то один цикл занимает всего 0,22 наносекунды. Таким образом, 1,3 миллиарда циклов соответствуют чуть менее 300 миллисекундам.
Конечно, не все игры умеют так, и чем старше проект, тем меньше количество потоков он задействует. Если мы посмотрим на оригинальную Call of Duty 2003 года, то увидим совсем другую картину.

Все игры той эпохи были такими — всего один поток для всего. Это связано с тем, что в то время процессоры имели только одно ядро, и относительно немногие из них поддерживали SMT.
В то время как процесс Call of Duty требует один поток, Shadow of the Tomb Raider должным образом одновременно является многопоточным (столько, сколько поддерживает ЦП).
Первоначально аппаратное обеспечение опережало программное обеспечение, когда дело дошло до полного использования всех предлагаемых ядер (с SMT или без него), и нам пришлось ждать несколько лет, прежде чем игры стали полностью многопоточными.
Теперь, когда последние консоли имеют 8-ядерный процессор с поддержкой 2SMT, будущие игры, безусловно, будут больше загружены потоками.
Многопоток – будущее?
Пользователь может получить настольный ПК с процессором, способным обрабатывать 32 потока (AMD Ryzen 9 7950X), и графическим процессором, который может обрабатывать 4096 потоков (Nvidia GeForce RTX 4090).
Это аппаратное обеспечение, конечно же, находится на переднем крае технологий, стоимости и мощности и, конечно же, не является представителем того, что может предложить большинство компьютеров. Но около 10 лет назад картина была совсем другой.
Лучшие процессоры поддерживали 8 потоков через SMT, но среднему ПК обычно приходилось обходиться примерно 4 потоками. Теперь вы можете приобрести процессоры с бюджетом менее 100 долларов, которые работают так же, как лучшие чипы 7-летней давности.

4 ядра, 8 потоков, менее 100 долларов – Intel Core i3-10100 показывает приблизительно тот же уровень производительности, что и Intel Core i7-7700.
Мы можем поблагодарить AMD за это, так как они были первыми, кто предложил множество ядер/потоков по доступной цене. Платформа АМ4 стала революцией в мире домашних ПК. И сегодня оба производителя регулярно борются за то, кто может предложить больше ядер/потоков за доллар.
Мы находимся на этапе, когда новые игры почти в полной мере используют всю доступную им вычислительную мощность, если они не ограничены графическим процессором.
Итоги
Так что же дальше? Если бы мы могли перенестись на десятилетие вперед, увидим ли мы среднестатистического геймера, использующего 128-поточный процессор? Возможно, но очень маловероятно, просто потому, что большинство программного обеспечения до сих пор упирается в мощности одного ядра. Наращивание Single Core производительности имеет важную роль, как и количество ядер. Тем не менее профессиональные создатели графического контента уже используют мощные процессоры и дорогие видеокарты для работы.
Ядра или потоки: выясняем что важнее для процессора

В описании современных процессоров указаны количества ядер и потоков. Что обозначают эти цифры, на какие показатели следует ориентироваться при покупке процессора.
В спецификации каждого процессора обязательно присутствует информация о количестве ядер и потоков. Правила «чем больше, тем лучше», в этой ситуации никто не отменял, но давайте выясним, в каких задачах виртуальные ядра способны дать ощутимый прирост производительности, а в каких останутся бесполезными.
Зачем процессору несколько ядер?
Процессор – это вычислительный центр любого компьютера, планшета, смартфона и даже игровой консоли. Именно процессор принимает команды пользователя, вводимые в различных приложениях и программах, обрабатывает их и распределяет задачи между другими узлами системы – видеокартой , оперативной памятью , твердотельным диском.
Вот поэтому процессор – это мозговой центр каждого компьютера, отвечающий за его вычислительные способности и скорость работы.
Первые процессоры были едиными устройствами, которые принимали команды и выполняли их в строгой очередности. Одно ядро позволяло выбирать процессор при покупке только по показателям частоты. А недостаток производительности на первых порах компенсировали созданием двух- и многопроцессорных конфигураций. В таких сборках команды пользователя на ввод обрабатывал первый процессор, а остальные операции по возможности равномерно распределялись между остальными. Для сборки таких систем использовались двухпроцессорные материнские платы или конфигурации на несколько сокетов.
Следующим шагом производители создали многоядерную архитектуру, позволяющую на площади, казалось бы, небольшого микрочипа размещать несколько вычислительных центров, которые по сути являлись самостоятельными процессорами. Так в продаже появились двух-, четырех- и восьмиядерные устройства, которые обрабатывали сразу несколько потоков информации.
Позже корпорация Intel в линейке процессоров Pentium внедрила техническую возможность выполнения одним ядром двух команд за такт, что стало началом новой эпохи в компьютерных технологиях – гиперпоточности процессоров. А сейчас специалисты компании активно работают над новой технологией реализации четырех потоков на одном ядре, и уже в ближайшее время подобные процессоры будут представлены публике.
Чем отличаются ядра и потоки
Ядро – это самостоятельный вычислительный блок в архитектуре процессора, способный выполнять линейную последовательность задач за определенный период времени. Если нагрузить одно ядро несколькими последовательностями задач, то оно будет попеременно переключаться между ними, обрабатывая по одной задаче из каждого потока. В масштабах системы это приводит к замедлению работы программ и сервисов.
Поток – это программно-выделенная область в физическом ядре процессора. Такая виртуальная реализация позволяет разделять ресурсы ядра и работать параллельно с двумя разными последовательностями команд. Таким образом операционная система воспринимает поток, как отдельный вычислительный центр, следовательно, ресурс ядра используется более рационально, и скорость вычислений увеличивается.
Стоит ли ожидать удвоения производительности?
Виртуальное разделение вычислительной мощности процессора на потоки называется гиперпоточностью. На практике это не физическое увеличение количества ядер, следовательно, и вычислительный потенциал процессора остается постоянным.
Гиперпоточность – это инструмент, позволяющий процессору более оперативно выполнять команды операционной системы и распределять вычислительный ресурс.
Таким образом, удвоенное количество потоков по отношению к ядрам способно повысить эффективность процессора за счет одновременного выполнения нескольких задач каждым ядром. Но прирост, даже по заверениям лидера рынка в производстве процессоров Intel будет находиться в пределах 30%.
А вот об увеличении энергопотребления и чрезмерном нагреве волноваться не стоит. Так как виртуальное разделение выполнено на производстве, то компанией просчитаны все рабочие параметры, такие как мощность и TDP, указанные в спецификации.
Что выбирать: ядра или потоки?
Поскольку ядра – это физические «мозговые центры», занимающиеся вычислениями, то за общую производительность центрального процессора отвечают именно они. Поэтому количеством ядер, ну и еще частотой процессора определяется его производительность.
Но и количество потоков также заслуживает внимания. Разберем на примере:
Двухъядерный процессор с двумя потокам нагружается операционной системой четырьмя параллельными последовательностями команд, например, от открытых игр и программ. Команды так и останутся в четырех «очередях», и ядра будут попеременно производить вычисления из каждой. При этом производительность ядра зачастую избыточна для обработки одной команды. Поэтому часть вычислительного потенциала ядра, а значит и процессора останется в резерве.
Если же взять аналогичный процессор с двумя ядрами, но уже на четыре потока, то все четыре очереди будут задействованы одновременно, по максимуму загружая ядра. Следовательно, задачи будут решены быстрее, а простоя вычислительных мощностей удастся избежать.
На практике это дает нам возможность одновременно запускать несколько программ: работать с документами, слушать музыку, общаться в мессенджерах и выполнять поиск в браузере. При этом программы будут работать эффективно, быстро, без торможений и зависаний.
В производственных масштабах для комплектации рабочих станций или серверов также следует отдать предпочтение большему количеству потоков при равных числах ядер. За исключением особых случаев, таких как работа с 1С, когда решающую роль играет тактовая частота, и ряда других приложений, активно использующих TCP/IP стек. В этих случаях распараллеливание вызывает существенную задержку при обработке пакетов.
Таким образом, чем больше ядер будет в процессоре, тем выше его производительность и скорость выполнения различных задач. А удвоенное количество потоков позволяет повысить эффективность процессора и задействовать его технический потенциал на полную.
- Все посты
- HDD и SSD диски (69)
- KVM-оборудование (2)
- Powerline-адаптеры (2)
- Безопасность (4)
- Беспроводные адаптеры (2)
- Блоки питания (14)
- Видеокарты (49)
- Видеонаблюдение (6)
- Дисковые полки (2)
- Звуковые карты (4)
- ИБП (26)
- Инструменты (1)
- Кабели и патч-корды (7)
- Коммутаторы (13)
- Компьютерная периферия (43)
- Компьютеры (49)
- Контроллеры (6)
- Корпусы (14)
- Материнские платы (30)
- Модули памяти (18)
- Мониторы (40)
- Моноблоки (8)
- МФУ (6)
- Ноутбуки (37)
- Общая справка (56)
- Охлаждение (19)
- Планшеты (3)
- Плоттеры (1)
- Принтеры (6)
- Программное обеспечение (65)
- Процессоры (55)
- Рабочие станции (6)
- Распределение питания (1)
- Расходные материалы (1)
- Ретрансляторы Wi-Fi (3)
- Роутеры (17)
- Серверы и платформы (46)
- Сетевые карты (5)
- Сетевые фильтры (2)
- Сканеры (1)
- СХД (6)
- Телефония (4)
- Тонкие клиенты (2)
- Трансиверы (5)
- Умный дом (1)
- Шкафы и стойки (6)
Также вас может заинтересовать
Процессор 2022 года, сколько ядер нужно играм и софту?

Муки апгрейда: сколько ядер нужно играм, есть ли смысл переплачивать?
Что такое ядро процессора?
Ядро — блок процессора где производятся математические и логические вычисления. Многоядерные процессоры позволяют параллельно выполнять сразу несколько независимых процессов (программ и игр) разделяя их по ядрам, а не держать их в одной очереди. При этом современная программа или игра может разделиться на несколько процессов и потоков, чтобы задействовать несколько доступных ядер для ускорения вычисления, лог.решений, а для игр снизить задержки на реакцию действий пользователя. Но не все программы и игры умеют использовать все доступные ядра это может быть связано с тем что программа старой разработки или для её работы не нужно столько ресурсов. Даже одновременно запущенные простые программы как Интернет браузер, офисный редактор и музыкальный плеер, спокойно довольствуются работой двух ядерного процессора. Игры и программы выпущенные до 2006 года могут использовать только одно ядро. До 2010 года большинство игр и программ может задействовать только 2 ядра. До 2019 года подавляющее большинство игр использует всего 4 ядра, а использование 8 и более не приносило преимуществ.
Виртуальные ядра (логические потоки) — результат деления физического ядра на несколько логических потоков (обычно на два), один поток получает приоритет к ресурсам ядра и используется для сложных вычислений, а второе виртуальное для решения несущественных процессов. При высокой нагрузке виртуальные потоки временно замораживаются. Программы видят больше ядер чем есть на самом деле, а операционная система сама решает как распределить процессы. Такой подход не позволяет ускорить решение одной задачи/программы, но позволяет ускорить и сократить нагрузку от работы кучи малоресурсных программ (чаты, музыка и т.д.)
Считаем ядра
4 ядра — базовое требование большинства игр и программ выпущенных до 2019 года. Для игр и программирования их уже не стоит их рассматривать, но для офисных нужд отлично подойдет. Например: INTEL Core i3-10100 с встроенной видеокартой в процессоре. 6 ядер — оптимум для большинства. 6 ядер будет достаточно ещё до 2024 года; 8 ядер — золотой стандарт для игр на 4К-мониторе (2160р при 16:9), а также для новых 4К VR очков и мощных видеокарт, где ставится цель получить не менее 100 FPS. Прибавляем ядра, если: +2 ядра — для стриминга и +1 монитор; +2 ядра — если широкоформатный монитор 21:9 (на экране больше объектов); +4 ядра — игра на 3 мониторах по 16:9 или супер широкоформат 32:9; В подсчете используем только физические ядра, не учитываем виртуальные. Речь идёт о современных процессорах, выпускаемых с 2018 года, таких как: AMD Ryzen 5/7/9 и Intel Core i5/i7/i9. 6-ти ядерный процессор 2016 года, будет равен производительности 4 ядерному процессору из 2019 года. Поэтому не стоит рассчитывать на старые процессоры.
Примеры: А) Для игр с монитором 21:9 или VR 6 + 2 = 8 ядер Б) Монитор 4К + стриминг 8 + 2 = 10 ядер
Оптимум — 6 ядер
Адекватный вариант для программистов, дизайнеров и фото редакторов начального уровня. 6 ядер ещё достаточно для современных и будущих игр на «стандартных» 16:9 мониторах в разрешении до 1440p и VR очков начального уровня (например Oculus Quest 2). Удачные процессоры: AMD Ryzen 5 5600X Intel Core i5-11600KF
Производительности процессора хватит для видеокарт: NVIDIA GeForce RTX 3060 AMD RADEON 6600
Кому 8 ядерный?
Выбор оправдан для игр с современной видеокартой, среднего уровня: AMD Radeon 6700XT или Nvidia GeForce 3070 Также для работы в современных графических дизайнерских программах в самых высоких разрешениях. Оптимальные 8 ядерные варианты: AMD Ryzen 7 5800X Intel Core i7-11700KF Если нужно больше 120FPS: AMD Ryzen 7 5800X3D — стабильно высокая частота и рекордный объем кэш памяти.
На игровые приставки Playstation 5 и XBOX S|X установлены 8 ядерные процессоры AMD Ryzen, а значит будущие игры оптимизированы под 8 ядер.
10/12 ядер?
А) Игра на сверхшироком мониторе 31:9 или на 3 мониторах; Б) Стриминг в 4K разрешении; В) Видеомонтаж 4К видео; Г) Продвинутое программирование с постоянно работающей базой данных; Варианты: AMD Ryzen 9 5900X — 12 ядер Intel Core i9-10900KF — 10 ядер Intel Core i9-12700K — 8 мощных + 4 слабых ядра, процессор только для Windows 11 и самых свежих Linux. Поддерживает DDR 4 и 5.
Производительности процессоров хватит для топовых видеокарт: NVIDIA GeForce RTX 3080 AMD RADEON 6800XT
16 и более?
Единственные игры в которых можно получить заметное преимущество от использования 16 и более ядер это пошаговые стратегии. Такие, как например Total War: Warhammer 3, Civilization 6 и тому подобные, где ход компьютера требует больших вычислений. В игровых жанрах как шутер, гонки, аркады — 16 ядер не принесут улучшение по сравнению даже с 8 ядерным процессором, для них важнее частота и кэш память процессора. Обычно большое количество ядер влечет уменьшение тактовой частоты и если игра загрузит только 8 ядер из 16 то на выходе можем получить меньше FPS чем запустили бы игру на 8 ядерном процессоре но с более высокой частоте. Но такие процессоры используются разработчиками игр, где используется несколько программ для создания и отладки игры Для работы эти процессоры имеют преимущество только в массовых и очень сложных задачах: Автокад и 3D моделирование, поточная обработках фотографий, видеомонтаж и конвертация, компиляция сложных программ и игр, архивация данных. Примеры процессоров 16 ядерных процессоров:
AMD Ryzen 9 5950X Intel Core i9-12900KF — работает с DDR4 и DDR5
Можно ознакомиться с тестами и обзорами 16 ядерного AMD Ryzen 3950X. Из которых видно, что разрыв между 8, 12 и даже 16 ядрами в играх незначительная (на начало 2020 года) и картина врядли изменится в ближайшей перспективе. Разботчики игр в первую очередь будут подстравиваться под консоли, а новое поколение консолей 2020 года будет строится на 8 ядерных AMD. Когда появятся игровые приставки с 12 или 16 ядрами, тогда и на ПК переход будет полностью оправдан. 3Dnews — Обзор процессора AMD Ryzen 9 3950X: фаталити ixbt — Тестируем AMD Ryzen 9 3950X: горячие во всех смыслах 16 ядер, полностью меняющие представление о десктопных процессорах
Есть ли смысл брать ядра на запас?
Нет — так показал опыт с момента появления первых 4 и 6 ядерных процессоров. Кроме количества ядер есть наиболее важные показатели: объем и скорость кеш-памяти, инструкции, алгоритмы «предсказаний», тип и скорость оперативной памяти, тип и кол-во полос на PCIE, тактовая частота. Поэтому 10 — 12 ядерный процессор из 2020 года будет ощутимо проигрывать 8 ядерному процессору из 2025 года. Но удачно выбранный современный процессор способен «пережить» одну замену видеокарты. Купив современный процессор и видеокарту 2019-2020 года, можно провести модернизацию в 2023 году, поменяв видеокарту и увеличить объем оперативной памяти. И в 2025 поменять процессор с мат.платой и памятью. «Топовые» видеокарты каждые 3 года обновляют требования к процессорам и памяти, поэтому лучший процессор 2020 года не сможет на 100% загрузить «топовую» видеокарту 2025 года. «Лишние ядра» имеет смысл брать: А) В ближайший год планируется смена 16:9 монитора на 21:9 или играть в три монитора; Б) Дополнительные ядра пригодятся в софте или программировании для работы;
Благодаря появлению игр на API Vulkan и Directx 12 требования к связке «процессор — видеокарта» снизились до 50%, что существенно продлило жизнь старым 6 и 8 ядерным процессорам. Раньше с Directx 10/11 приходилось менять видеокарту и процессор одновременно. Большинству игр хватало даже 2, но быстрых ядер для 1080p 16:9, а наличие даже 8 ядер не давало преимуществ.
Нужны ли потоки играм?
Нет. В играх от них толку нету или прибавка на уровне погрешности. Игра сильно нагружает ядро и второй виртуальный поток этого ядра обычно замораживается. Потоки полезны для работы, тем у кого одновременно запущено более 5 разных программ и все они активны (открыты на экране) и/или работают в фоне. Мнения и гипотезы: Бытует мнение, что для игр с API Directx 12 все же потоки дают прибавку до 3% производительности. Одни тесты это доказывают, другие опровергают. Все же это связано в первую очередь с оптимизацией игры и приложениями которые открыты вместе с игрой или работают на соседнем мониторе. На старых играх с API Directx 11/10/9 виртуальные потоки не влияют на производительность или даже тормозят. И тому есть гипотеза: большинство топ игр изначально готовились для приставок XBOX и PS, где установлены процессоры AMD без виртуальных потоков, а значит игры заточены под физические ядра и после переноса на PC игровой движок ошибочно воспринимает потоки, думая, что это физические ядра.
С другой стороны, все новые «игровые» процессоры выпущенные с 2020 года будут иметь виртуальные потоки.
Почему не подходят старые 6 и 8 ядерные процессоры?
Старые процессоры, выпущенные до 2017 года завершают свой жизненный цикл (особенно на DDR3 памяти). Каждые два года игры и софт становится более требовательным к таким показателям процессора: — объем и скорость кэш-памяти;
— набор инструкций и алгоритмов в процессоре (ускоряют сложные расчёты); — скорость и объем оперативной памяти; Проще говоря ядра старых процессоров не достаточно быстры как у новых и они банально не смогут успевать прорабатывать игровые сцены и расчеты для современных видеокарт. Такая же ситуация обстоит и со старыми Intel Xeon процессорами с алиэкспресс. Ядер много, электричества ест много, а толку в современных играх все меньше и меньше.
Тактовая частота теперь не на первом месте как это было 10 лет назад.
Есть ли смысл в DDR5?
В 2022 году новая линейка процессоров Intel 12XXX совместима с оперативной памятью нового поколения DDR5 и благо совместимы ещё с DDR4. Как показывают многочисленные тесты, преимуществ от использования DDR5 редко превышает 5%, поэтому выбор в пользу DDR5 оправдан только для работы и сборки сервера с высокой нагрузкой где можно оправдать расходы на дорогую DDR5 память. В играх же наблюдается даже отрицательный результат из-за высокой задержки отклика чипов памяти (CL) 5-го поколения по сравнению с доступным сегодня на рынке DDR4. При этому учитывайте, что DDR5 на 1 квартал 2022 года стоит в два раза дороже чем аналогичная схема DDR4.
К сборке игровой системы на DDR5 рекомендуем присмотреться только в середине 2023 года, когда выйдет новое поколение процессоров Intel 13XXX и AMD 7XXX. В которых будет улучшена совместимость с DDR5, а также на рынке будет достаточно новых схем DDR5 с более низкой ценой, лучшей скорости и меньшей задержкой отклика чипов.
AMD или Intel?
Каждый бренд имеет свои незначительно плюсы и минусы. Выбор зависит от фанатизма, опыта и разочарований в прошлом и кошелька. Аргументы в пользу AMD: — AMD инноватор: первый массовый 64 битный процессор, первые многоядерные процессоры (и «народные»). Благодаря этим инновациям, AMD толкает зазевавшийся Intel развиваться и заставляет ощутимо снижать цены; — Процессоры и видеоускорители этого бренда используются в игровых приставках XBOX и PS; Аргументы в пользу Intel: — Бренд десятилетия лидирует по продажам и внушает заслуженного доверия; — Лучшие процессоры для ноутбуков (но AMD догоняет); — Большая часть старого софта и игр (на API Directx 11) лучше оптимизированы под процессоры Intel;
Опубликовано: 08.08.2021 (обновлено: 19.01.2023 ) , автор NA88
Технологии многопоточности процессоров: принцип работы и сферы применения
![]()
Физические ядра, логические ядра, технологии многопоточности — все это разрабатывалось инженерами для увеличения производительности компьютерного железа, требования к которому постоянно растут. Программы и игры требуют все больше ресурсов. Как же производители процессоров увеличивают мощность своих детищ? Процессор является «сердцем» компьютера и выполняет вычисления, необходимые для работы софта. Модели CPU отличаются между собой даже в рамках одного семейства. Например, Intel Core i7 отличается от i5 технологией многопоточности под названием «Hyper-Threading», о которой далее пойдет речь (Core i3, i9, и некоторые Pentium также обладают данной технологией).
Принцип работы процессорных ядер и многопоточности
В современных операционных системах одновременно работает множество процессов.
Нагрузка от операционной системы на процессор идет по так называемому конвейеру, на который «выкладываются» нужные задачи для ядра. В качестве примера возьмем одно ядро процессора на частоте 4 ГГц с одним ALU (арифметико-логическое устройство) и одним FPU (математический сопроцеесор). Частота в 4 ГГц означает, что ядро исполняет 4 миллиарда тактов в секунду. К ядру по конвейеру поступают задачи, требующие исполнительной мощности, на которые тратится процессорное время.
![]()
Часто происходят случаи, когда для выполнения необходимой операции процессору приходится ждать данные из кеша более низкой скорости (L3 кеш), или же оперативной памяти. Данная ситуация называется кэш-промах. Это происходит, когда в кэше ядра не была найдена запрошенная информация и приходится обращаться к более медленной памяти. Также существуют и другие причины, заставляющие прерывать выполнение операции ядром, что негативно сказывается на производительности.
Данный конвейер можно представить, как настоящую сборочную линию на заводе — рабочий (ядро) выполняет работу, поступающую к нему на ленту. И если необходимо взять нужный инструмент, работник отходит, оставляя конвейер простаивать без работы. То есть, исполняемая задача прерывается. Инструментом, за которым пошел рабочий, в данном случае является информация из оперативной памяти или же L3 кэша. Поскольку L1 и L2 кэш намного быстрее, чем любая другая память в компьютере, работа с вычислениями теряет в скорости.
На конвейере с одним потоком не могут выполняться одновременно несколько процессов. Ядро постоянно прерывает выполнение одной операции для другой, более приоритетной. Если появятся две одинаково приоритетные задачи, одна из них обязательно будет остановлена, ведь ядро не сможет работать над ними одновременно. И чем больше поступает задач одновременно, тем больше прерываний происходит.
Способы увеличения производительности процессоров
Разгон
При увеличении частоты ядра повышается количество исполняемых операций за секунду. Казалось бы, с возрастанием производительности процессора проблемы должны исчезнуть. Но все не так просто, как хотелось бы думать. Прирост от увеличения частоты ЦП нелинейный. Множество процессов все еще делят одно ядро между собой и обращаются к памяти. Кроме того, не решается проблема с кэш-промахами и прерываниями операций, поскольку объем кэша от разгона не изменяется. Разгон — не самый лучший способ решения проблемы нехватки потоков. В пример можно привести всю ту же сборочную линию: рабочий увеличивает темп работы, но по-прежнему не умеет собирать два и более заказа одновременно.
Увеличение количества потоков на ядро
В процессорах Intel данная технология носит название Hyper-Threading, а в процессорах от Amd — SMT. Производители добавляют еще один регистр для работы со вторым конвейером. Пока один поток простаивает, ожидая нужные данные, свободная вычислительная мощность может быть использована вторым потоком. На кристалл же добавлен еще один контроллер прерываний и набор регистров.
Появляется возможность избавиться от последствий прерывания операций и сокращения времени простоя процессорной мощности. Благодаря чему ядро с двумя потоками выполняет больше работы за одинаковый отрезок времени, нежели в случае с однопотоком. На примере с рабочим: у конвейера появляется вторая сборочная линия, на которую выкладываются заказы. Пока производство на первой ленте простаивает в ожидании нужных инструментов, рабочий приступает к работе на второй ленте, сокращая время перерыва.
![]()
Стоит учитывать, что логический поток это не второе ядро, как может показаться с первого взгляда. Это лишь дополнительная «линия производства», чтобы более эффективно использовать доступную мощность. Из минусов технологии Hyper-Threading или SMT можно выделить увеличение тепловыделения, недостаток кэша (кэш на два потока по-прежнему общий), и проблемы с оптимизацией некоторых программ или игр, не способных отличать настоящее ядро от логического потока.
Именно по этой причине процессоры серии i7 «горячее» и имеют больше кэша по сравнению с i5. Использование технологии многопоточности может принести примерно до 30 % прироста производительности. Все это применимо как к Intel Hyper-Threading, так и к AMD SMT, поскольку технологии во многом схожи. Может возникнуть вопрос: «Если можно добавить второй поток, то почему бы не добавить третий и четвертый?» Это реализуемо, но не имеет смысла, поскольку кэш одного ядра достаточно мал для большего количества потоков и прироста производительности практически не будет.
Увеличение количества ядер
Это самый действенный способ решения проблемы, поскольку каждый конвейер теперь располагает своим FPU, ALU и кэшем, который не придется делить с другим потоком. Разные процессы используют разные ядра, из-за чего реже происходят кэш-промахи и конфликты приоритетных задач. Способ, разумеется, несет в себе некоторые издержки для производителей: дороговизна разработки и производства, увеличение тепловыделения и размера кристалла, и, как результат, повышается итоговая стоимость процессора.
![]()
Сферы применения многопоточных процессоров
С развитием компьютерных технологий перечень программ, использующих многопоточность, неуклонно растет. Это дает огромный простор разработчикам для создания нового софта и игр. Например, сейчас каждый современный triple-A проект оптимизирован для многопоточных процессоров, что позволяет наслаждаться игрой, получая высокий уровень fps на многоядерном CPU.
Еще больше распространены многоядерные системы в среде разработчиков. Программы для 3D-моделирования, монтажа видео и создания музыки требуют параллельного выполнения большого количества задач, с чем хорошо справляются системы с Hyper-Threading или SMT. В операционных системах мощность одного потока может тратиться на фоновые задачи (Skype, браузер, мессенджер), в то время как остальные задействуются для тяжелой игры или программы.
Но далеко не всегда увеличение количества потоков означает увеличение общей производительности. Почему же SMT процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке. Иногда плохо оптимизированные программы не могут отличать логический поток от настоящего ядра, из-за чего на одно ядро может попасть две тяжелых задачи и замедлить работу. Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.