Виртуальные ядра процессора что это

Обновлено: 07.07.2024

Технология многопоточности Hyper-Threading (HT) создана для увеличения производительности процессоров. С помощью HT на физическом ядре процессора создаются 2 логических ядра, позволяющих вести параллельные вычисления.

У AMD есть подобная технология многопоточности SMT и сейчас она сталкивается с теми же проблемами, что и intel с HT ранее.

Теоретически Hyper-Threading должна была увеличить производительность процессоров. Но на практике с этим возникла проблемы. Дело в том, что во многих играх включение HT приводит к небольшому снижению производительности и это наблюдается уже более 10 лет. Это привело к тому, что многие "Геймеры" программно отключили технологию многопоточности в BIOS.

И тут возникают вопросы:

Из за чего возникает снижение производительности?

Неужели HT бесполезная технология?

В каких вариантах HT положительно сказывается на производительности?

1. Снижение производительности.

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

Во вторых, программы не различают логические и физические ядра. Логическое ядро работает по остаточному принципу, если первое ядро нагружено на 70% то, второму логическому ядру остается только 30%. Сложный процесс может попасть в логическое ядро, тем самым скорость обработки замедлится.

В третьих, некоторые игры, до сих пор используют только 4 потока. И в случае 8 поточного процессора, у него будет нагружена 2 физических ядра и 2 логических, то есть 50% процессора будет простаивать, что приведет к недостатку производительности.

2. Бесполезна ли HT, когда она эффективно работает?

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

3. А как же игры? Что с ними?

С играми интересная ситуация. При нагрузке процессора до 80%, что с отключенным HT, что с включенным - результаты будет примерно одинаковы, отличия 2-3 FPS в ту или иную сторону. Но если процессор будет нагружен выше 80%, то тут же проявляется серьезное преимущество включенной HT.

Заключение.

Преимущество технологии HT проявляются именно при высоких нагрузках на процессор. Дело в том, что современные игры не слишком требовательны к центральному процессору и нагрузить современный процессор до 80% очень сложно. Но при таких нагрузках процессоры с HT покажут на 20-30 % большую производительность, чем без HT.

Если у вас процессор с HT, то естественно лучше держать эту технологию всегда включенной (за исключение кривых игр, которые используют только 4 потока). При обычном использовании ПК Hyper-Threading показывает отличные результаты.

Понравилась публикация? Ставьте Лайк и подписывайтесь на мой канал!


С момента покупки 2600K я сразу отключил плюшку в виде HT, так как из-за нее приходилось завышать немного напряжение и соответственно повышалась температура и снижался разгон. Хотел давно проверить что я теряю, и теряю ли вообще?


Вкратце, технология Hyper-Threading (HT)делает из одного физического ядра два виртуальных, или к одному физического ядру плюсует одно виртуальное, кому как угодно. Intel использует эту технологию уже очень давно, она появилась еще в процессорах Pentium 4. Сегодня, она есть почти во всех мобильных процессорах Intel, и это позволяет двухядерникам показывать отличные результаты.

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

Winrar
Запустим упаковку с максимальным сжатием


Почти на 30% быстрее пакует 2600K с HT, достойно

Вернемся к играм, итак, 4ядра 3.5ггц Sandy bridge способны спокойно раскрывать видеокарты, которые дают по 80-100fps в играх, Но это на идеально чистом компе, без антивирусов и прочего мусора, это на Windows, которая имеет всего 30 процессов в диспетчере задач, но если на компе запустить несколько фоновых задач? Например фильмец в разрешении 4K на второй монитор и музыку, ЦП загружен примерно на 30%, разгоняем по максимуму видеокарту GTX660Ti до 1280MHz|7600, даже смешно, 80MHz это теперь норма для разгона:) ставим разрешение 1280x720, настройки делаем на ультра чтобы процессору не было легко и рассмотрим подробно одну игру на примере Watch dogs.
быстро рассмотрим конфигурацию компа:
2600K
P8Z77-V Deluxe
2x4GB DDR3 2133
GTX660Ti
Windows 8.1 x64 rus

вот мониторинг фона без запущенных игр на 3.5ггц и на 5ггц

Значит так, отталкиваться будем от результата, полученного на частоте 5ггц и чистым фоном. Так вот, имеем в итоге 80fps. Теперь с запущенным фильмом и музыкой проделываем тоже самое на частоте 3.5 и 5.0 ггц с откл. и вкл. HT.


5.00GHz noHT

если сравнивать 3.5ггц с HT и 5ггц без HT то на 5ггц игра идет еще чуть плавнее, средний fps чуть подрос до 70. загрузка гпу еще более ровная чем раньше. Интересно что процессор на 5ггц загружен больше чем на 3.5ггц…


5.00GHz HT

В этом режиме игра идет почти также, как будто фон чистый, рывки очень редко но все-таки они есть. fps 77. Вот как должен работать современный процессор)) кстати опять 5ггц загружен сильнее чем 3.5ггц


Сведем данные в диаграмму, 30% это примерная загрузка ЦП перед замером.

самый большой буст произошел на частоте 3.5ггц. HT почти на 40% подняла средний fps, шикарно. Но повторюсь опять же, на чистом фоне на частоте 3.5ггц без HT я получил почти те же 80fps что и при 5ггц. Возьмем два результата 3.5ггц с HT и 5 ггц без HT, исход почти одинаковый, но на 5ггц игра идет чуть плавнее, но я бы оставил 3.5ггц с HT, ведь для этого можно даже понизить заводское напряжение, и система получится почти бесшумной, а на 5ггц придется подать около 1.45V и повысить обороты кулера для эффективного охлаждения, что приведет к повышенному шуму.

приведу еще несколько тестов, но не так подробно, принцип такой же.





главные соперники тут опять 3.5ггц с HT против 5ггц без HT, и тут HT обгоняет 4 физических ядра на большей частоте.

Я уже было начал думать что во всех играх так будет, но нет GTAIV реагирует на частоту а не на виртуальные ядра.





Интересно что на 30% фоне и частоте 5ггц удалось достичь производительности чистого фона

Добавлю еще одну игруху, Crysis 3.





Наблюдается больше зависимость от частоты, нежели от HT, но и виртуальные ядра тут лишними не будут.

В заключении могу сказать что HT если и не улучшает игровой процесс, то точно не ухудшает его, хоть это радует. Если у вас загаженный комп, или стоят несколько антивирусов O_o то можно включить HT, впринципе от нее толк есть, но если у вас чистый и прозрачный как слеза младенца:) фон, то HT практически ничего не дает. Я лично ей не пользуюсь, если только в sony vegs.

Где то утверждают что это по сути и есть ядро (или поток ядра). И например при технологии Hyper-Threading система определяет физическое ядро как два виртуальных.

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

Еще говорят что при создании виртуальной машины можно для нее выделять виртуальные процессоры

ТАК ЧТО ТАКОЕ ВИРТУАЛЬНЫЙ ПРОЦЕССОР


12.1k 12 12 золотых знаков 37 37 серебряных знаков 68 68 бронзовых знаков


635 1 1 золотой знак 6 6 серебряных знаков 18 18 бронзовых знаков Комментарии не предназначены для расширенной дискуссии; разговор перемещён в чат.

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

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

Существуют эмуляторы процессоров. Например, вы можете скачать эмулятор NES и поиграть на нем в старые игры. Эти игры написаны для процессора Ricoh 2A03, но играть в них вы будете на процессоре семейства Intel. Однако большинство игр подмены не заметят, поскольку эмулятор реализует все нужные инструкции. В этом смысле эмулятор NES содержит в себе виртуальный процессор.

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

Технология виртуализации в процессоре

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

Зачем нужна виртуализация на домашнем компьютере

Вот простой пример: вы используете для работы и игр Windows, но при этом хотите изучить, например, Linux. Значит, нужно, чтобы эта операционная система находилась под рукой. Или занимаетесь программированием под Android или iOS. В этом случае постоянно требуется проверка разработанного приложения в родной среде.


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

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

Виртуализация в бизнесе

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


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

Разумеется, так как мощность и производительность серверных систем и пропускная способность каналов связи постоянно растет, у виртуализации появляется все больше возможностей для применения. Наглядный пример из относительно недавно запущенных и находящихся у всех на слуху — сервис GeForce Now, благодаря которому можно на слабых компьютерах запускать современные игры.


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

Основные направления развития виртуализации

В целом виртуализация как технология сейчас развивается по трем основным направлениям:

  • Виртуализация представлений. Это все тот же сервис GeForce Now. Сервер предоставляет вычислительные мощности, выполняет все расчеты, а на стороне терминала, за которым находится пользователь, только отображаются результаты расчетов. Да, в этом случае аппаратные требования к серверу оказываются высокими, но зато терминальное оборудование может быть очень простым.
  • Виртуализация аппаратной платформы. Это имитация аппаратной платформы с четко заданными параметрами. На созданный таким образом виртуальный компьютер устанавливают собственную ОС, запускаемую с помощью соответствующего приложения. Пример такой виртуализации — точная эмуляция Android для проверки и поиска багов в новых приложениях.


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

Как работает виртуализация

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


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

Такая технология есть у обоих крупных производителей процессоров для ПК: у Intel она называется Intel VT, у AMD — AMD –V.

Особенности Intel VT

Впервые о разработке технологии виртуализации компания Intel объявила еще в 2005 году. И с тех пор Intel VT постоянно совершенствуется и расширяется.


Корпорация Intel описывает Intel VT как технологию, развивающую несколько основных направлений. На сегодня это:

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


  • виртуализация графических представлений через Intel Graphics Virtualization. Обеспечивает виртуальным машинам полный доступ или совместное использование графических процессоров и систем, отвечающих за работу с видео. Применяется для удаленных рабочих мест (несколько пользователей работают с удаленных терминалов на одном сервере) и онлайн-игр;
  • виртуализация ввода-вывода Intel Virtualization Technology for Directed I/O и прочие технологии работы с периферией обеспечивают передачу результатов обработки на сетевые и прочие устройства ввода-вывода информации. То есть, образно говоря, не дают виртуальным машинам «поссориться» при взаимодействии с сетью и не потерять в быстродействии. А также позволяют им получать доступ к любым устройствам, подключенным, например, к шине PCI-E. Отсюда следует и виртуализация сетевых функций, например, Intel QuickAssist.

Особенности AMD–V

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

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

Включение виртуализации на компьютере

Непосредственный запуск виртуальных машин выполняется с помощью специальных приложений:

  • менеджеров виртуальных машин. В качестве примера можно привести VMWare Workstation, Parallels Workstation. В этом случае одна операционная система запускается внутри другой;
  • программ-гипервизоров, позволяющих запускать на одном компьютере одновременно несколько операционных систем. Примеры таких приложений — Microsoft Hyper-V или Xen.


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

Дело в том, что по умолчанию в настройках BIOS большинства материнских плат виртуализация отключена. И ее необходимо включить в соответствующем разделе, который называется у каждого производителя по-своему, например, «Virtualization Technology» изменив значение опции с «Disabled» на «Enabled».


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

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

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

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



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

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


Но, не всё так просто.

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

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

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

Что это будет значить для центрального процессора?


Плохая для процессора задача каждый такт занимает только один порт, и ещё периодически требуется задействование портов, используемых для данных. Можно увидеть, что почти весь процессор находиться в простое. Не задействован его потенциал и на 20%. И не надо путать это с процентом загрузки процессора. Показанная ситуация в программах мониторинга процессора будет показывать 100% загрузку процессора

Проблема эта вполне реальная и, естественно, производители процессоров с ней борются.


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


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


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

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

Из рассказа может показаться, что это запихивание двух потоков в одно ядро штука чисто программная.

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


На деле всё сложнее и есть и недостатки такого подхода.

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


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

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

Но даже учитывая строгое задание числа потоков на ядро есть недостатки и у такого решения.

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

Естественно и удельного объёма кеш памяти тоже на один поток становиться меньше. То есть для эффективной работы нужно больше кеша на ядро.

Ну, и, конечно, есть проблемы и софтверные.

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

И тогда, в 2003 году отключение HT было довольно действенной мерой по повышению производительности.


Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: