Чем больше ядер тем лучше или нет. Ядра процессора, их влияния и функции в пк

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

Значит смотрите, давайте я покажу на примере, почему иногда лучше много ядер, а иногда лучше высокая частота. Смотрите, для примера возьмем офисный комп, где создают и редактируют документы, пользуются интернетом, браузерами. Это все не особо требовательные задачи, но для комфорта лучше чтобы все это работало быстро. Да, тут можно взять например процессор Core i5 и оно таки все будет работать быстро. Но я бы взял тут Pentium G3258 (это как пример), это Пенек, тут два ядра и его можно хорошенько разогнать. Но стоит то он нааамного дешевле чем i5. Разогнать его можно до 4.4 ГГц, это так бы сказать безопасный разгон. И вот такие два ядра на частоте 4.4 ГГц позволят получить достаточно шустрый комп. А если разогнать до 4.6 ГГц, то еще лучше. При этом процессор особо страшно не греется, но хороший радиатор разумеется что нужен.

Вот такой разгон Pentium G3258 будет оправдан и в плане цены и в плане производительности

Теперь возьмем всеми любимые игры. Вы часто играете в несколько игр одновременно? Я думаю что нет. Поэтому в большом количестве ядер смысла нет. Но с другой стороны и два ядра будет маловато. Тут идеальная золотая середина это 4 ядра, это у нас идет процессор i5, это я имею ввиду для стационарных компов, ибо у ноутбучных i5 могут быть то 2 ядра и 4 потока, то просто 4 ядра, но ноутбучные процы однозначно слабее. Для игр идеально это 4 ядра на высокой частоте, хотя бы на 4.2 ГГц, это уже достаточно на пару лет вперед, как мне кажется. Ну на годика три так точно. i7 это почти тоже самое, но ШИРЕ в мощности. Понимаете. Не быстрее, а ШИРЕ, то есть сможет тянуть помимо игры еще что-то, ну например вторую игру, если вы уникум и играете в две игры одновременно..

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

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

Ну все ребята, на этом все, надеюсь что тут я смог до вас донести свою мысль и что все вам тут было понятно. Удачи вам и чтобы у вас всегда было хорошее настроение

17.11.2016

QX | 22 июля 2015, 14:45
Не только частота, техпроцесс тоже. Современные 2-ядерные процессоры по 3 ГГц не сравнить с первыми 2-ядерниками, из тех что тоже по 3 ГГц. Частота одинаковая, но старые просто жуткие тормоза в сравнении с новыми. В итоге современный 2-ядерный i3 намного лучше, чем 4-ядерник Quad Q6600. Даже Pentium G посвежее лучше старого Quadа.

QX | 11 июля 2015, 12:18
Здесь разница в частоте не велика, 3,5 против 3 ГГц. Потому интересны 4 ядра. Но конечно если остальные характеристики тоже не отстают. Много ядер нужно для архивации, кодирования видео и т.п. Взяв 2 ядерник ещё и сэкономить можно, слегка. Ещё вопрос, как много будете работать на нём. Ну и лучше бы Вы всё-таки обе модели конкретно назвали. А так, я бы Вам посоветовал Core i3 помощнее и посвежее.

MaKos007 | 30 марта 2015, 16:00
Я тут буду растекаться мысью по древу. потому сразу скажу - ваш выбор двухъядерный процессор с более высокой частотой. Если теория не интересна, то дальше можно не читать.

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

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

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

На самом деле, вопрос оптимального количества ядер - сложный. Здесь еще важна архитектура самих ядер и связей между ними. Так первые многоядерные процессоры имели значительно менее функциональное устройство, чем современные. Кроме того, следует учитывать, что современные ОС Windows 7 и Windows 8 (я не рассматриваю здесь *nix системы и их поддержку многоядерных процессоров - отдельная и очень интересная тема) найчились очень хорошо распараллеливать многие задачи. Таким образом, многоядерность помогает не тормозить основные процессы (используемые пользователем приложения и игры) из-за выполнения фоновых задач. Таким образом, антивирусная защита и фаервол не станут тормозить (точнее, в меньшей степени будут тормозить) запущенную игру или работу в Фотошопе.

Для каких программ важна многоядерность. Проведя некоторое время в интернете, можно выяснить, что она ускоряет конвертацию видео и аудио; рендеринг 3D-моделей, шифрование сигнала и т.п. Вам для работы в Photoshop и видеомонтажа не нужно 4 ядра. Вполне достаточно, как я уже говорил, двух, но с более высоким быстродействием каждого из них.

teleport | 21 апреля 2013, 01:30
Простой подсчет производительности показывает: для 2-х ядерного общая производительность 2 x 3.5 = 7, для 4-х ядерного - 4 x 3 = 12. Так что 4-х ядерный почти в 2 раза мощнее. Кроме того он наверняка современнее, а значит экономичнее и производительнее. А если используется только одно ядро - меньше греется, поскольку частота одного ядра немного ниже, но для нагрева это существенно.

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

yang | 11 апреля 2013, 20:22
В данном случае эффективнее и экономичнее во всех отношениях будет двухъядерный процессор.

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

Большинство процессоров сейчас 2-4 ядерные, но имеются дорогие модели для игровых компьютеров и дата-центров на 6 и даже 8 ядер. Ранее, когда центральный процессор имел всего одно ядро, вся производительность заключалась в частоте, а работа с несколькими программами одновременно могла полностью «повесить» ОС.

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

Способ 1: AIDA64

– это популярная программа для мониторинга производительности компьютера и проведения различных тестов. ПО платное, но есть тестовый период, которого хватит для того, чтобы узнать количество ядер в ЦП. Интерфейс AIDA64 полностью переведён на русский язык.

Инструкция выглядит следующим образом:


Способ 2: CPU-Z

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

Чтобы узнать количество ядер при помощи этого ПО, достаточно просто его запустить. В главном окне найдите в самом низу, в правой части, пункт «Cores» . Напротив него будет написано количество ядер.

Способ 3: Диспетчер задач

Данный способ подходит только для пользователей ОС Windows 8, 8.1 и 10. Выполните эти действия, чтобы узнать количество ядер таким способом:


Способ 4: Диспетчер устройств

Этот способ подходит для всех версий Windows. Используя его, следует помнить, что на некоторые процессоры от Intel информация может быть выдана неверно. Дело в том, что ЦП от Intel используют технологию Hyper-threading, которая делит одно ядро процессора на несколько потоков, тем самым повышая производительность. Но при этом «Диспетчер устройств» может видеть разные потоки на одном ядре как несколько отдельных ядер.

Пошаговая инструкция выглядит так:


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

В первые годы нового тысячелетия, когда частоты CPU, наконец, прошли отметку 1 ГГц, некоторые компании (не будем показывать пальцем на Intel) предсказывали, что новая архитектура NetBurst сможет в будущем достичь частот порядка 10 ГГц. Энтузиасты ожидали наступление новой эры, когда тактовые частоты CPU будут расти подобно грибам после дождя. Нужно больше производительности? Просто перейдите на процессор с большей тактовой частотой.

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

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

Pentium EE 840 - первый двуядерный CPU, появившийся в рознице.

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

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

Но возникает вопрос: сколько ядер CPU нужно на самом деле? Достаточно ли для игр трёхъядерного процессора, или лучше доплатить и взять четырёхъядерный чип? Достаточно ли для обычного пользователя двуядерного процессора, или большее число ядер действительно даёт какую-либо разницу? Какие приложения оптимизированы под несколько ядер, а какие будут реагировать на изменение только таких спецификаций, как частота или размер кэша?

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

Чтобы тесты были справедливыми, мы выбрали четырёхъядерный процессор - разогнанный до 2,7 ГГц Intel Core 2 Quad Q6600. После проведения тестов на нашей системе, мы затем отключили одно из ядер, перезагрузились, и повторили тесты. Мы последовательно отключали ядра и получили результаты для разного количества активных ядер (от одного до четырёх), при этом процессор и его частота не менялись.

Отключение ядер CPU под Windows выполнить очень легко. Если вы хотите узнать, как это сделать, то наберите "msconfig" в окне Windows Vista "Начать поиск/Start Search" и нажмите "Enter". Это откроет утилиту "Конфигурация системы".

В ней перейдите на закладку "Загрузка/Boot" и нажмите клавишу "Дополнительные параметры/Advanced options".

Это приведёт к появлению окна "Дополнительные параметры загрузки/BOOT Advanced Options". Выберите галочку "Число процессоров/Number of Processors" и укажите нужно число ядер процессора, которые будут активны в системе. Всё очень просто.

После подтверждения программа предложит перезагрузиться. После перезагрузки в "Диспетчере задач Windows" (Task Manager) можно увидеть число активных ядер. Вызов "Диспетчера задач" выполняется нажатием клавиш Crtl+Shift+Esc.

Выберите в "Диспетчере задач" вкладку "Быстродействие/Performance". В ней вы сможете увидеть графики нагрузки для каждого процессора/ядра (будь это отдельный процессор/ядро или виртуальный процессор, как мы получаем в случае Core i7 с активной поддержкой Hyper-Threading) в пункте "Хронология загрузки ЦП/CPU Usage History". Два графика означают два активных ядра, три - три активных ядра и т.д.

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

Тестовая конфигурация

Системное аппаратное обеспечение
Процессор Intel Core 2 Quad Q6600 (Kentsfield), 2,7 ГГц, FSB-1200, 8 Мбайт кэша L2
Платформа MSI P7N SLI Platinum, Nvidia nForce 750i, BIOS A2
Память A-Data EXTREME DDR2 800+, 2 x 2048 Мбайт, DDR2-800, CL 5-5-5-18 на 1,8 В
Жёсткий диск Western Digital Caviar WD50 00AAJS-00YFA, 500 Гбайт, 7200 об/мин, кэш 8 Мбайт, SATA 3,0 Гбит/с
Сеть Встроенный контроллер nForce 750i Gigabit Ethernet
Видеокарты Gigabyte GV-N250ZL-1GI 1 GB DDR3 PCIe
Блок питания Ultra HE1000X, ATX 2.2, 1000 Вт
Программное обеспечение и драйверы
Операционная система Microsoft Windows Vista Ultimate 64-bit 6.0.6001, SP1
Версия DirectX DirectX 10
Драйвер платформы nForce Driver Version 15.25
Графический драйвер Nvidia Forceware 182.50

Тесты и настройки

3D-игры
Crysis Quality settings set to lowest, Object Detail to High, Physics to Very High, version 1.2.1, 1024x768, Benchmark tool, 3-run average
Left 4 Dead Quality settings set to lowest, 1024x768, version 1.0.1.1, timed demo.
World in Conflict Quality settings set to lowest, 1024x768, Patch 1.009, Built-in benchmark.
iTunes Version: 8.1.0.52, Audio CD ("Terminator II" SE), 53 min., Default format AAC
Lame MP3 Version: 3.98 (64-bit), Audio CD ""Terminator II" SE, 53 min, wave to MP3, 160 Kb/s
TMPEG 4.6 Version: 4.6.3.268, Import File: "Terminator II" SE DVD (5 Minutes), Resolution: 720x576 (PAL) 16:9
DivX 6.8.5 Encoding mode: Insane Quality, Enhanced Multi-Threading, Enabled using SSE4, Quarter-pixel search
XviD 1.2.1 Display encoding status=off
MainConcept Reference 1.6.1 MPEG2 to MPEG2 (H.264), MainConcept H.264/AVC Codec, 28 sec HDTV 1920x1080 (MPEG2), Audio: MPEG2 (44.1 KHz, 2 Channel, 16-Bit, 224 Kb/s), Mode: PAL (25 FPS), Profile: Tom"s Hardware Settings for Qct-Core
Autodesk 3D Studio Max 2009 (64-bit) Version: 2009, Rendering Dragon Image at 1920x1080 (HDTV)
Adobe Photoshop CS3 Version: 10.0x20070321, Filtering from a 69 MB TIF-Photo, Benchmark: Tomshardware-Benchmark V1.0.0.4, Filters: Crosshatch, Glass, Sumi-e, Accented Edges, Angled Strokes, Sprayed Strokes
Grisoft AVG Antivirus 8 Version: 8.0.134, Virus base: 270.4.5/1533, Benchmark: Scan 334 MB Folder of ZIP/RAR compressed files
WinRAR 3.80 Version 3.80, Benchmark: THG-Workload (334 MB)
WinZip 12 Version 12, Compression=Best, Benchmark: THG-Workload (334 MB)
3DMark Vantage Version: 1.02, GPU and CPU scores
PCMark Vantage Version: 1.00, System, Memory, Hard Disk Drive benchmarks, Windows Media Player 10.00.00.3646
SiSoftware Sandra 2009 SP3 CPU Test=CPU Arithmetic/MultiMedia, Memory Test=Bandwidth Benchmark

Результаты тестов

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

Мы начнём с синтетического теста игровой производительности 3DMark Vantage. Мы выбрали прогон "Entry", который 3DMark выполняет на самом низком доступном разрешении, чтобы производительность CPU сильнее влияла на результат.

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

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

В тесте подсистемы памяти мы вновь наблюдаем самый большой прирост производительности при переходе от одного ядра CPU к двум.

Тест продуктивности, как нам кажется, сильнее всего влияет на общий результат теста PCMark, поскольку в данном случае рост производительности заканчивается на трёх ядрах. Давайте посмотрим, будут ли аналогичны результаты другого синтетического теста SiSoft Sandra.

Мы начнём с арифметических и мультимедийных тестов SiSoft Sandra.


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

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

После синтетических тестов настало время посмотреть, что мы получим в тестах приложений.

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

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

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

Получается, ни Lame, ни iTunes не оптимизированы под несколько ядер CPU для кодирования аудио. С другой стороны, насколько мы знаем, программы кодирования видео часто очень сильно оптимизируют под несколько ядер из-за их изначально параллельной природы. Давайте посмотрим на результаты кодирования видео.

Мы начнём тесты кодирования видео с MainConcept Reference.

Обратите внимание, насколько сильно на результат влияет увеличение числа ядер: время кодирования уменьшается с девяти минут на одноядерном 2,7-ГГц процессоре Core 2 до всего двух минут и 30 секунд, когда активны все четыре ядра. Вполне понятно, что если вы часто перекодируете видео, то лучше брать процессор с четырьмя ядрами.

Получим ли мы схожие преимущества в тестах TMPGEnc?

Здесь можно видеть влияние на результат кодера. Если кодер DivX высоко оптимизирован под несколько ядер CPU, то Xvid не демонстрирует такого заметного преимущества. Впрочем, даже Xvid даёт снижение времени кодирования на 25% при переходе от одного ядра к двум.

Начнём графические тесты с Adobe Photoshop.

Как видим, версия CS3 не замечает добавление ядер. Странный результат для столь популярной программы, хотя мы признаём, что не использовали последнюю версию Photoshop CS4. Результаты CS3 всё равно не вдохновляют.

Давайте посмотрим на результаты 3D-рендеринга в Autodesk 3ds Max.

Вполне очевидно, что Autodesk 3ds Max "любит" дополнительные ядра. Данная особенность присутствовала в 3ds Max ещё во время работы этой программы в DOS-окружении, поскольку задача 3D-рендеринга выполнялась столь долго, что было необходимо распределять её по нескольким компьютерам в сети. Опять же, для подобных программ весьма желательно использовать четырёхъядерные процессоры.

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

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


WinZip и WinRAR не дают заметного прироста на нескольких ядрах. WinRAR демонстрирует прирост производительности на двух ядрах, но не более того. Интересно будет посмотреть, как себя покажет только что вышедшая версия 3.90.

В 2005 году, когда стали появляться настольные компьютеры с двумя ядрами, просто не существовало игр, которые демонстрировали бы прирост производительности при переходе от одноядерных CPU на многоядерные процессоры. Но времена изменились. Как сказываются несколько ядер CPU на современных играх? Давайте запустим несколько популярных игр и посмотрим. Мы проводили игровые тесты в низком разрешении 1024x768 и с низким уровнем графических деталей, чтобы минимизировать влияние видеокарты и определить, насколько сильно данные игры упираются в производительность CPU.

Начнём с Crysis. Мы снизили до минимума все опции за исключением детализации объектов, которую мы выставили в "High", а также Physics, которую мы установили в "Very High". В итоге производительность игры должна сильнее зависеть от CPU.

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

Но мы знаем, что Crysis серьёзно использует расчёты физики, поэтому давайте посмотрим, каковая будет ситуация в игре не с такой продвинутой физикой. Например, в Left 4 Dead.

Что интересно, игра Left 4 Dead демонстрирует схожий результат, хотя львиная доля прироста производительности появляется после добавления второго ядра. Есть небольшой прирост при переходе на три ядра, но вот четвёртое ядро этой игре не требуется. Интересная тенденция. Посмотрим, насколько она будет характерна для стратегии реального времени World in Conflict.

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

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

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

В приложениях мы наблюдаем более реалистичный прогресс - около 35% прироста от второго ядра CPU, 15% прирост от третьего и 32% прирост от четвёртого. Странно, что при добавлении третьего ядра мы получаем только половину преимущества, которое даёт четвёртое ядро.

В приложениях, впрочем, лучше смотреть на отдельные программы, а не на общий результат. Действительно, приложения кодирования аудио, например, вообще не выигрывают от увеличения числа ядер. С другой стороны, приложения кодирования видео дают серьёзные преимущества от большего числа ядер CPU, хотя всё довольно сильно зависит от используемого кодера. В случае программы 3D-рендеринга 3ds Max мы видим, что она серьёзно оптимизирована под многоядерные окружения, а приложения редактирования 2D-фотографий, подобные Photoshop, не реагируют на количество ядер. Антивирус AVG показал серьёзное увеличение производительности на нескольких ядрах, а на утилитах сжатия файлов выигрыш не такой большой.

Что же касается игр, то при переходе от одного ядра на два производительность увеличивается на 60%, а после добавления в систему третьего ядра мы получаем ещё 25% отрыв. Четвёртое ядро в выбранных нами играх не даёт преимуществ. Конечно, если бы мы взяли больше игр, то ситуация могла бы измениться, но, в любом случае, трёхъядерные процессоры Phenom II X3 кажутся весьма привлекательным и недорогим выбором для геймера. Важно отметить, что при переходе на более высокие разрешения и добавлении визуальных деталей, разница из-за количества ядер будет меньшей, поскольку видеокарта станет решающим фактором, влияющим на частоту кадров.


Четыре ядра.

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

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

Я рассказал, почему рост частоты процессоров застопорился на нескольких гигагерцах. Теперь же поговорим о том, почему развитие числа ядер в пользовательских процессорах также идет крайне медленно: так, первый честный двухядерный процессор (где оба ядра были в одном кристалле), построенный на архитектуре x86, появился аж в 2006 году, 12 лет назад - это была линейка Intel Core Duo. И с тех пор 2-ядерные процессоры с арены не уходят, более того - активно развиваются: так, буквально на днях вышел ноутбук Lenovo с процессором, построенном на новейшем (для архитектуры x86) 10 нм техпроцессе. И да, как вы уже догадались, этот процессор имеет ровно 2 ядра.

Для пользовательских процессоров число ядер застопорилось на 6 еще с 2010 года, с выходом линейки AMD Phenom X6 - да, AMD FX не были честными 8-ядерными процессорами (там было 4 APU), равно как и Ryzen 7 представляет собой два блока по 4 ядра, расположенные бок о бок на кристалле. И тут, разумеется, возникает вопрос - а почему так? Ведь те же видеокарты, будучи в 1995-6 годах по сути «одноголовыми» (то есть имевшими 1 шейдер), сумели к текущему времени нарастить их число до нескольких тысяч - так, в Nvidia Titan V их аж 5120! При этом за гораздо больший срок развития архитектуры x86 пользовательские процессоры остановились на честных 6 ядрах на кристалле, а CPU для высокопроизводительных ПК - на 18, то есть на пару порядков меньше, чем у видеокарт. Почему? Об этом и поговорим ниже.

Архитектура CPU

Изначально все процессоры Intel x86 строились на архитектуре CISC (Complex Instruction Set Computing, процессоры с полным набором инструкций) - то есть в них реализовано максимальное число инструкций «на все случаи жизни». С одной стороны, это здорово: так, в 90-ые годы CPU отвечал и за рендеринг картинки, и даже за звук (был такой лайфхак - если игра тормозит, то может помочь отключение в ней звука). И даже сейчас процессор является эдаким комбайном, который может все - и это же является и проблемой: распараллелить случайную задачу на несколько ядер - задача не тривиальная. Допустим, с двумя ядрами можно сделать просто: на одно ядро «вешаем» систему и все фоновые задачи, на другое - только приложение. Это сработает всегда, но вот прирост производительности будет далеко не двукратным, так как обычно фоновые процессы требуют существенно меньше ресурсов, чем текущая тяжелая задача.

Слева - схема GPU Nvidia GTX 980 Ti, где видно 2816 CUDA-ядер, объединенных в кластеры. Справа - фотография кристалла процессора AMD Ryzen, где видно 4 больших ядра.

А теперь представим, что у нас не два, а 4 или вообще 8 ядер. Да, в задачах по архивации и другим расчетам распараллеливание работает хорошо (и именно поэтому те же серверные процессоры могут иметь и несколько десятков ядер). Но что если у нас задача со случайным исходом (которых, увы, большинство) - допустим, игра? Ведь тут каждое новое действие зависит всецело от игрока, поэтому «раскидывание» такой нагрузки на несколько ядер - задача не из простых, из-за чего разработчики зачастую «руками» прописывают, чем занимаются ядра: так, к примеру, одно может быть занято только обработкой действий искусственного интеллекта, другое отвечать только за объемный звук, и так далее. Нагрузить таким способом даже 8-ядерный процессор - практически невозможно, что мы и видим на практике.

С видеокартами же все проще: GPU, по сути, занимается расчетами и только ими, причем число разновидностей расчетов ограничено и невелико. Поэтому, во-первых, можно оптимизировать сами вычислительные ядра (у Nvidia они называются CUDA) именно под нужные задачи, а, во-вторых - раз все возможные задачи известны, то процесс их распараллеливания трудностей не вызывает. И в-третьих, управление идет не отдельными шейдерами, а вычислительными модулями, которые включают в себя 64-192 шейдера, поэтому большое число шейдеров проблемой не является.

Энергопотребление

Одной из причин отказа от дальнейшей гонки частот - резкое увеличение энергопотребления. Как я уже объяснял в статье с замедлением роста частоты CPU, тепловыделение процессора пропорционально кубу частоты. Иными словами, если на частоте в 2 ГГц процессор выделяет 100 Вт тепла, что в принципе можно без проблем отвести воздушным кулером, то на 4 ГГц получится уже 800 Вт, что возможно отвести в лучшем случае испарительной камерой с жидким азотом (хотя тут следует учитывать, что формула все же приблизительная, да и в процессоре есть не только вычислительные ядра, но получить порядок цифр с ее помощью вполне можно).

Поэтому рост вширь был отличным выходом: так, грубо говоря, двухядерный 2 ГГц процессор будет потреблять 200 Вт, а вот одноядерный 3 ГГц - почти 340, то есть выигрыш по тепловыделению больше чем на 50%, при этом в задачах с хорошей оптимизацией под многопоточность низкочастотный двухядерный CPU будет все же быстрее высокочастотного одноядерного.


Пример испарительной камеры с жидким азотом для охлаждения экстремально разогнанных CPU.

Казалось бы - это золотое дно, быстро делаем 10-ядерный процессор с частотой в 1 ГГц, который будет выделять лишь на 25% больше тепла, чем одноядерный CPU с 2 ГГц (если 2 ГГц процессор выделяет 100 Вт тепла, то 1 ГГц - всего 12.5 Вт, 10 ядер - около 125 Вт). Но тут мы быстро упираемся в то, что далеко не все задачи хорошо распараллеливаются, поэтому на практике зачастую будет получаться так, что гораздо более дешевый в производстве одноядерный CPU с 2 ГГц будет существенно быстрее гораздо более дорогого 10-ядерного, но с 1 ГГц. Но все же такие процессоры есть - в серверном сегменте, где проблем с распараллеливанием задач нет, и 40-60 ядерный CPU с частотами в 1.5 ГГц зачастую оказывается в разы быстрее 8-10 ядерных процессоров с частотами под 4 ГГц, выделяя при этом сравнимое количество тепла.

Поэтому производителям CPU приходится следить за тем, чтобы при росте ядер не страдала однопоточная производительность, а с учетом того, что предел отвода тепла в обычном домашнем ПК был «нащупан» уже достаточно давно (это около 60-100 Вт) - способов увеличения числа ядер при такой же одноядерной производительности и таком же тепловыделении всего два: это или оптимизировать саму архитектуру процессора, увеличивая его производительность за такт, или же уменьшать техпроцесс. Но, увы, и то и другое идет все медленнее: за более чем 30 лет существования x86 процессоров «отполировано» уже почти все, что можно, поэтому прирост идет в лучшем случае 5% за поколение, а уменьшение техпроцесса дается все труднее из-за фундаментальных проблем создания корректно функционирующих транзисторов (при размерах в десяток нанометров уже начинают сказываться квантовые эффекты, трудно изготовить подходящий лазер, и т.д.) - поэтому, увы, увеличивать число ядер все сложнее.

Размер кристалла

Если мы посмотрим на площадь кристаллов процессоров лет 15 назад, то увидим, что она составляет всего около 100-150 квадратных миллиметров. Около 5-7 лет назад чипы «доросли» до 300-400 кв мм и... процесс практически остановился. Почему? Все просто - во-первых, производить гигантские кристаллы очень сложно, из-за чего резко возрастает количество брака, а, значит, и конечная стоимость CPU.

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


Сравнение кристаллов Intel Pentium 3 и Core i9.

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

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

Оптимизация работы

Представим, что у нас есть коллектив людей, выполняющих различные задачи, некоторые из которых требуют работы нескольких человек одновременно. Если людей в нем двое - они смогут договориться и эффективно работать. Четверо - уже сложнее, но тоже работа будет достаточно эффективной. А если людей 10, а то и 20? Тут уже нужно какое-то средство связи между ними, в противном случае в работе будут встречаться «перекосы», когда кто-то будет ничем не занят. В процессорах от Intel таким средством связи является кольцевая шина, которая связывает все ядра и позволяет им обмениваться информацией между собой.

Но даже и это не помогает: так, при одинаковых частотах 10-ядерный и 18-ядерный процессоры от Intel поколения Skylake-X различаются по производительности всего на 25-30%, хотя должны в теории аж на 80%. Причина как раз в шине - какой бы хорошей она не была, все равно будут возникать задержки и простои, и чем больше ядер - тем хуже будет ситуация. Но почему тогда таких проблем нет в видеокартах? Все просто - если ядра процессора можно представить людьми, которые могут выполнять различные задачи, то вычислительные блоки видеокарт - это скорее роботы на конвейере, которые могут выполнять только определенные инструкции. Им по сути «договариваться» не нужно - поэтому при росте их количества эффективность падает медленнее: так, разница в CUDA между 1080 (2560 штук) и 1080 Ti (3584 штуки) - 40%, на практике же около 25-35%, то есть потери существенно меньше.


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

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

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



Понравилась статья? Поделиться с друзьями: