На что влияет количество потоковых процессоров
На что влияет количество потоков процессора? Просто о сложном
Когда-то технология Hyper Threading от Intel стала настоящим прорывом, а ныне практически каждый современный процессор поддерживает распараллеливание Core-вычислений для обеспечения поточности. Аналогичным путём пошла и AMD. На что влияет количество потоков процессора?
Для начала дадим определение самому термину. Ядро – условное обозначение вычислительной ед-цы CPU, выполняющее последовательность команд. Строго одну и в заданной очерёдности.
Если ядер несколько, уже происходит переключение, обеспечивая равномерное распределение ресурсов. Понятно, что Double Core – лучше одного, а Quad – в 2 раза быстрее, чем двуядерный (при условии идентичной частоты и прочих характеристик).
Многопоточность же позволяет рациональнее задействовать доступную мощность, когда происходит виртуальное расщепление одной физической единицы сразу на две. Особенно такое распределение актуально для фоновых задач и процессов.
Например, для антивирусного ПО, работающего в фоне. Если же предстоит сложный графический рендеринг, практичнее взять ЦП с максимальным числом физических ядер.
О потоках в процессоре
Добрый день. Сегодня хотелось бы разобрать, что такое потоки в процессоре. Те самые, о функциях и возможностях которых большинство и не догадывается, однако любят хвастаться остальным.
Если провести сравнение процессоров разных поколений, то можно заметить одну интересную тенденцию: многопоточность – штука полезная и здорово повышает суммарную производительность системы.
Начнем с того, что каждый современный процессор построен на физических ядрах с определенной частотой. Допустим, 1 ядро имеет тактовую частоту в 3 ГГц, т.е. может выполнить 3 млрд вычислительных операций за секунду (такт). Но современные ОС (Windows, Linux, MacOS) запускают более 3 млрд процессов, т.е. пользователь начинает сталкиваться с таким понятием как прерывание: ЦП физически не успевает обрабатывать все сразу и начинает переключаться на самые приоритетные задачи.
Логика здесь элементарная: присмотреться к многоядерным и многопоточным решениям. Разгон не дает линейного прироста в производительности, иначе такие гиганты как Intel и AMD выпускали бы процессоры на 5-6 и более ГГц.
Польза от повышения частоты есть, но она нивелируется увеличенным энергопотреблением и сокращением срока службы ЦП.
Многопоточность и все о ней
Многие наверняка слышали выражения из серии «2 потока», «4 потока», «8 потоков» и т.д. При этом физических ядер зачастую было в 2 раза меньше.
Эта технология имеет название HyperThreading (Intel) или SMT (AMD).
Многопоточность у красных появилась совсем недавно, с выходом чипов Ryzen на совершенно новом техпроцессе. Что это такое – тема отдельной статьи.
Цель функции заключается в том, что на 1 ядро может одновременно обрабатывать несколько потоков данных. Пока первый поток простаивает, а второй занимается вычислением, запущенное приложение может воспользоваться вакантной логической мощью для своих целей. В результате, прерывания случаются гораздо реже, а вы не ощущаете тормозов и прочих неудобств при работе.
Недостаток технологии заключается в следующем:
Если очень грубо, то все кирпичи с одного места на другое можно перенести в одной руке (1 поток), либо в двух (2 потока), но человек при этом один (1 ядро) и устает одинаково при любых условиях, хоть его производительность фактически увеличивается вдвое. Иными словами, мы упираемся в производительность ЦП, а конкретней в его частоту.
Знакомы с понятием Turbo Boost? Процесс кратковременно повышает частоту процессора на несколько сотен мегагерц в особо сложных сценариях, чтобы вы не испытывали проблем при обработке сложных данных.
Сколько нужно ядер и потоков современному обывателю?
Как я уже сказал выше, современные ОС падки на ресурсы процессора, поскольку отнимают часть мощностей на собственные службы, интерфейс, красивости и функции защиты в реальном времени. Но при этом пользователь хочет еще и работать с комфортом.
Вместо итогов
Практика показывает, что современный универсальный ПК должен иметь в своем распоряжении как минимум 4 ядра/8 потоков, чего будет достаточно для большинства задач, связанных с обработкой данных. Хотя варианты из серии 6/12 выглядят более обещающими по той причине, что стоят они не намного дороже, а пользы от них больше.
В качестве «золотой» середины можем предложить свежий вариант модели, построенный на обновленной архитектуре Zen2. Он отлично справляется с играми, программами, распараллеливанием и обработкой данных, при этом отлично гонится(одним словом — стал популярным (появился в июле 2019)).
Надеемся, что вы почерпнули для себя полезную информацию, которая пригодится при подборе процессора для будущей системы. Следите за дальнейшими обновлениями, чтобы не пропустить новые статьи об анатомии ЦП.
Технологии многопоточности процессоров: принцип работы и сферы применения
Содержание
Содержание
Физические ядра, логические ядра, технологии многопоточности — все это разрабатывалось инженерами для увеличения производительности компьютерного железа, требования к которому постоянно растут. Программы и игры требуют все больше ресурсов. Как же производители процессоров увеличивают мощность своих детищ? Процессор является «сердцем» компьютера и выполняет вычисления, необходимые для работы софта. Модели 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 процессоры порой уступают немногопоточным собратьям? Дело в программной поддержке. Иногда плохо оптимизированные программы не могут отличать логический поток от настоящего ядра, из-за чего на одно ядро может попасть две тяжелых задачи и замедлить работу. Тем не менее, подобные технологии имеют огромный потенциал, главное — грамотно реализовать его на программном уровне.
Сколько ядер и потоков процессора нужно для игр в 2020 году
Содержание
Содержание
Четырьмя ядрами процессора уже давно никого не удивить, в последние время количество ядер и потоков в предлагаемых для настольного ПК центральных процессорах растёт с каждым годом. Поколение консолей с x86 архитектурой и 8 ядрами на борту уже готово смениться на следующее. Сколько же ядер нужно для игр прямо сейчас и в ближайшем будущем?
Методика тестирования
В идеальных условиях необходимо взять многоядерный процессор и протестировать все варианты отключения ядер. При этом надо сохранить идентичность внутренних взаимодействий и размер кеша. С другой стороны, такое исследование несет меньше пользы в реальном применении — размер кеша является одним из инструментов в разделении линеек. Поэтому многоядерные решения имеют большой размер кеша, а самые младшие процессоры в несколько раз меньше заветных МБ в L3.
Выявлять зависимость игр от количества ядер и потоков центрального процессора будем на двенадцатиядерном Ryzen 9 3900X.
Для каждой конфигурации подберу оптимальную на мой взгляд комбинацию активных ядер и CCD-чиплетов. Напомню, что процессоры AMD на архитектуре Zen2 состоят из нескольких кристаллов: I/O-чиплет с контроллерами интерфейсов и CCD-чиплеты с ядрами. Каждый CCD-чиплет представляет собой блок из двух CCX, содержащих в максимальной конфигурации 4 ядра и 16 МБ кеша третьего уровня. В Ryzen 9 3900X каждый CCX модуль оснащен тремя ядрами и 16 МБ кеша L3. CCD-чиплет может работать либо с равным количеством активных ядер на каждом из его CCX, либо только с одним активным CCX — это накладывает ограничение на итоговые комбинации для тестирования.
Активных CCD | Конфигурация CCD | 32 | 2 |
1 | 2+0 | 16 | 2 |
1 | 3+0 | 16 | 3 |
1 | 2+2 | 32 | 4 |
1 | 3+3 | 32 | 6 |
2 | 1+1 | 64 | 4 |
2 | 2+0 | 32 | 4 |
2 | 3+0 | 32 | 6 |
2 | 2+2 | 64 | 8 |
2 | 3+3 | 64 | 12 |
В таблице выше указаны все возможные для Ryzen 9 3900X конфигурации ядер, жирным выделены компромиссно выбранные для тестирования варианты — с максимальным кешем для 8 и 12 ядер и одинаковым половинным для всех остальных вариантов от 2 до 6 ядер.
Вариант с 3 ядрами исключил по причине отсутствия таковых в продаже и слишком малого для игр количества ядер, 2 ядра без SMT (технология использования одного физического ядра для создания двух логических, аналогично Hyper Threading у Intel) не включены в тест из-за неактуальности таких процессоров в настоящее время.
В CPU-Z соревнующиеся варианты с включенным SMT выглядят так:
CCD-чиплеты в процессоре не одинаковы по частотному потенциалу: один является более удачным и используется для достижения максимальных частот буста, второй — с меньшими возможными частотами на тех же напряжениях. Для чистоты эксперимента все ядра зафиксируем на одинаковой частоте — 4350 МГц.
Остальной тестовый стенд выглядит так:
Настройки таймингов оперативной памяти выставлены в режим высокой производительности.
Для улучшения читаемости текста обозначу каждый вариант конфигурации процессора комбинацией двух чисел, например 4-8, где первая указывает на количество активных физических ядер, вторая — общее количество потоков.
Производительность в играх буду измерять в трех параметрах: AVG — среднее значение ФПС на тестируемом отрезке, 1 % — среднее значение 1 % меньших ФПС и 0,1 % — среднее значение 0,1 % меньших ФПС. Из этих трех показателей самым интересным, пожалуй, является 1 % — основываясь на этом значении, можно составить представление о плавности и комфортности геймплея.
Тесты
Настройки в играх буду подбирать для облегчения нагрузки на видеокарту, но сохраняя сложность построения сцены для процессора.
В качестве отправной точки для сравнения буду использовать вариант с 4 физическими ядрами без использования многопоточности SMT.
3D Mark Time Spy CPU Test
Первой дисциплиной будет синтетический CPU тест игровой производительности из пакета 3D Mark.
Как и полагается искусственно созданной нагрузке с оптимизациями под многопоток — результат растет почти линейно вместе с количеством ядер и потоков.
Из интересных результатов — преимущество 6 физических ядер над 4 с включенным SMT, и 6-12 конфигурации над 8-8. Для процессоров Intel результат был бы похожим, за исключением почти идентичных результатов 6-12 и 8-8, Hyper Threading в среднем менее эффективен, чем SMT у AMD. Примечательность сравнения этих комбинаций ядер-потоков в прямой конкуренции реальных процессоров в игровых сборках.
Assassin’s Creed Odyssey
Первый игровой проект и сразу один из самых процессорозависимых. Полностью избавиться от влияния видеокарты на результат не удалось, но и в таких условиях сравнение возможно.
Вопреки полученным выше результатам синтетического теста 3D Mark, восьмипоточный вариант 4-8 оказался производительнее 6-6, а 8-8 — быстрее 6-12. Реальное положение дел отличается от теоретических вычислительных возможностей.
Любой вариант с восемью потоками и больше, особенно начиная с шести ядер, показывает почти максимальную производительность. Очевидна оптимизация игры именно под 8 потоков, и дальнейшее их наращивание не приносит заметного увеличения количества кадров в секунду.
Четыре ядра без SMT показывают достаточный для одиночной игры уровень ФПС, но сильно отстают от более оснащенных конфигураций. Вариант 2-4 подойдет только для совсем непритязательных игроков.
Far Cry 5
Far Cry не является игрой, сильно зависящей от количества потоков процессора, но протестировать такие проекты тоже необходимо.
Скриншоты с мониторингом параметров системы в вариантах 4-4 и 12-12 показывают отсутствие влияния видеокарты на результат теста, загрузка мощностей видеокарты не более 60 %.
Даже два ядра с включенным SMT показывают достойный уровень производительности во встроенном тесте, а 4-4 уже вплотную подбирается к максимально возможным для 3900Х на частоте 4,35 ГГц результатам. Классическая четырехпоточная игра.
Интересной особенностью Far Cry 5 является странная работа с процессорами без технологий логической многопоточности, причем это касается и процессоров AMD, и Intel. Статтеры в вариантах 6-6 и 8-8 роняют значение 0,1 % ФПС очень сильно и отражаются на комфорте игрового процесса для придирчивых игроков. При этом 4-4 и 12-12 конфигурации лишены таких проблем — для четырех ядер это верно и для процессоров Intel, 12 проверить не удалось.
Вот так огрехи оптимизации игры могут снизить итоговый ФПС при увеличении количества ядер и вычислительной мощности процессора.
PlayerUnknown’s Battlegrounds
PUBG уже не так популярен, как в былые времена, но все еще подходит под определение онлайн игры с большим количеством участников. В качестве тестового использовался отрезок повтора с двухминутным проездом на транспорте мимо активных боевых действий и красной зоны.
Скриншот мониторинга для варианта 4-4.
Конфигурации до 6-6 показывают приличный средний уровень ФПС, но мощности процессора явно не хватает — 1 % ниже 60 кадров в секунду уже нельзя назвать комфортным для сетевого шутера. 4-8 претендует на роль минимально приемлемого варианта.
World of Tanks enCore RT
WoT — яркий пример малопоточной онлайн игры, результаты в отдельном бенчмарке трудно считать реальным тестированием именно этого онлайн проекта, но вполне показательно в разрезе аналогичных игр, не требовательных к процессору.
Скриншот тестирования 8-16 варианта, количество кадров, подготавливаемых процессором, очень высоко: даже 720p не выручает — загрузка видеокарты более 80 %.
Любая из тестируемых конфигураций процессора показывает запредельный уровень ФПС. Начиная с 4-8, производительность достигает максимума и уже не меняется с ростом числа ядер и потоков.
Четырех ядер без SMT вполне достаточно для этой и подобных игр.
Red Dead Redemption 2
Вышедший на ПК эпичный вестерн доставляет больше проблем видеокарте, но и для процессора работа найдется, проект будет представлять портированные с приставок на настольный компьютер игры.
Скриншоты мониторинга вариантов 2-4 и 12-12, загрузка видеокарты велика для любого производительного варианта, но в этой игре это не мешает выявить разницу производительности процессоров.
Заметна оптимизация игры именно под 8 потоков: варианты 4-8 и 8-8 самые производительные. Примечательно, что даже 2-4 конфигурация позволит окунуться в атмосферу дикого запада с комфортом, если мощности видеокарты позволят.
Wolfenstein: Youngblood
Wolfenstein попал в сравнение как современная, хорошо оптимизированная игра.
Скриншот теста максимальной конфигурации 12-24 с мониторингом, избавиться от влияния видеокарты на результат не удалось, RTX 2080 Super оказалось недостаточно.
Все протестированные комбинации показывают отличные результаты, 4-4 не выглядит сильно отстающим.
Внимание привлекает отличная оптимизация игры под многопоточные процессоры — результаты в целом очень похожи на синтетический тест 3D Mark, 6-12 быстрее 8-8. С более мощной видеокартой рост производительности возможно сохранился бы и выше 8-16 варианта.
Итоги
Тенденция на увеличение ядер процессора в среднем ПК не обошла и игровую индустрию, многие проекты уже сейчас содержат оптимизации под многопоточные варианты. Переход приставок на x86 архитектуру, несомненно, тоже повлиял на этот процесс.
Можно с уверенностью сказать, что эра четырехядерных игровых процессоров подходит к концу, но прямо сейчас их производительности еще достаточно для относительно комфортного времяпрепровождения за любой игрой.
Естественно, главным ограничителем уровня кадров в секунду как и прежде является видеокарта, но, имея производительный шестиядерный процессор, уже можно рассчитывать на высокий ФПС в большинстве игр. А, начиная с 6-12 конфигураций, прирост кадров в секунду от увеличения потоков почти отсутствует.
Именно шесть ядер и двенадцать потоков скорее всего станут ориентиром для разработчиков игр в ближайшее время, но не стоит забывать о консолях с их восьмиядрной начинкой.