Как включить гипертрейдинг на процессорах амд
Приходит время и нам необходимо заменить/установить/ процессор в системном блоке. Но, после этих процедур система может его не увидеть и, соответственно, работать он полноценно не сможет – то есть, никакой практическое пользы нести не будет. Всё это связано с функцией hyper threading, а как включить ее и самое главное, где ее нужно искать – кратко в небольшом обзоре.
Данная функция доступна только через меню BIOS, в которое можно войти только перед полной загрузкой операционной системы. Для входа в это меню, вам необходимо после того, как включился ПК, не дожидаясь появления «окошка» загрузки, нажимать клавиши Ecs, Delete, f2 или f8. Пригодность каждого из вариантов зависит от того, какая версия биоса у вас в данный момент установлена. Чаще всего работает клавиша «Delete» - она универсальна на последних версиях биоса за 2001 – 2009 года. Чтобы найти настройки Hyper threading и включить ее, необходимо сделать следующие действия:
- После входа в меню, находим Сell Menu
- Дальше переходим в CPU Specifications
- Теперь входим в CPU Technology Support
- И в этом окне включаем Hyper threading – «Enabled».
Важно! После того, как вы сделали это, перезагрузите компьютер, предварительно сохранив данные изменения. Если же в диспетчере устройств у вас не появились корректные данные о процессоре – вам придётся переустановить систему из-за того, что вы ставили ее при выключенной функции Hyper threading, что и повлекло за собой неправильную работу распознавателя процессора. Перед переустановкой убедитесь в том, что функция включена в режим “Enabled”, чтобы избежать переустановки еще раз.
Вы хотите организовать домашнюю локальную сеть или соединить в одну сеть посредством разных архитектур в аудиториях или офисе? В таких ситуациях, вам необходимо проверить, включен ли динамический протокол конфигурации узла – DHCP. Как.
Технологии беспроводной передачи данных, хоть и давно уже пришли к нам, до сих пор популярны в использовании, хотя бы потому что передача данных происходит быстро и не зависит от подключения интернета (кроме wifi). Самым популярной.
Чаще всего, те, кто ранее пользовался Windows 7 не могут быстро привыкнуть к «восьмёрке», т.к. она не совсем схожа с «семёркой». Из-за этого возникают казусы и некоторые простые функции не получается найти или включить. В данной статье мы.
Было время, когда понадобилось оценить производительность памяти в контексте технологии Hyper-threading. Мы пришли к выводу, что ее влияние не всегда позитивно. Когда появился квант свободного времени, возникло желание продолжить исследования и рассмотреть происходящие процессы с точностью до машинных тактов и битов, используя программное обеспечение собственной разработки.
Основные принципы работы
Для увеличения возможностей CPU и была разработана технология Hyper Threading. Она позволяет либо разбивать один поток команд на два, либо добавлять второй к уже имеющемуся. Вот только такой поток является виртуальным, а не работает в физическом плане. Такой подход позволил существенно увеличить производительность процессора, соответственно, и вся система стала работать намного быстрее. Вообще, прирост производительности CPU может колебаться достаточно сильно (от 5 до 80 %), о чем будет сказано отдельно.
Впрочем, как утверждают и сами разработчики, детищем которых стала технология Hyper Threading, до полноценного процессорного ядра она явно не дотягивает. Однако в некоторых случаях ее использование является оправданным, как говорится, на все сто. А если знать суть процессов Hyper Threading (как включить их и применить на практике), результат не заставит себя ждать.
Опыт №2. 16 потоков на 4 процессора, Hyper-Threading выключен
Рис.3 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно четырем
Hyper-Threading выключен. Максимальная скорость 797598 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт. Как и ожидалось, по сравнению с чтением одним потоком, скорость выросла приблизительно в 4 раза, по количеству работающих ядер.
Hyper Threading: как включить опцию в BIOS?
В настройках BIOS (если данный тип процессора поддерживает эту технологию) обязательно имеется строка настройки, которая в большинстве случаев выглядит как Hyper Threading Technology (иногда Function). Но, в зависимости от версии BIOS и разработчика подсистемы, настройка этого параметра может располагаться либо в главном меню (Main), либо в расширенных настройках (Advanced BIOS Features). Для задействования технологии необходимо войти в меню параметров и установить значение на включенное (Enabled). Далее, как обычно, изменения сохраняются, после чего следует перезагрузка системы.
Опыт №1. Один поток
Рис.2 Чтение одним потоком
Максимальная скорость 213563 мегабайт в секунду. Точка перегиба имеет место при размере блока около 32 килобайт.
Исследуемая операция
Исследовать будем зависимость скорости чтения блока данных от его размера. Для этого выберем наиболее производительный метод, а именно чтение 256-битных операндов посредством AVX-инструкции VMOVAPD. На графиках по оси X отложен размер блока, по оси Y – скорость чтения. В окрестности точки X, соответствующей размеру кэш-памяти первого уровня, ожидаем увидеть точку перегиба, поскольку производительность должна упасть после того, как обрабатываемый блок выйдет за пределы кэш-памяти. В нашем тесте, в случае многопоточной обработки, каждый из 16 инициируемых потоков, работает с отдельным диапазоном адресов. Для управления технологией Hyper-Threading в рамках приложения, в каждом из потоков используется API-функция SetThreadAffinityMask, задающая маску, в которой каждому логическому процессору соответствует один бит. Единичное значение бита разрешает использовать заданный процессор заданным потоком, нулевое значение – запрещает. Для 8 логических процессоров исследуемой платформы, маска 11111111b разрешает использовать все процессоры (Hyper-Threading включен), маска 01010101b разрешает использовать по одному логическому процессору в каждом ядре (Hyper-Threading выключен).
На графиках используются следующие сокращения:
MBPS (Megabytes per Second) – скорость чтения блока в мегабайтах в секунду;
CPI (Clocks per Instruction) – количество тактов на инструкцию;
TSC (Time Stamp Counter) – счетчик процессорных тактов.
Примечание.Тактовая частота регистра TSC может не соответствовать тактовой частоте процессора при работе в режиме Turbo Boost. Это необходимо учитывать при интерпретации результатов.
В правой части графиков визуализируется шестнадцатеричный дамп инструкций, составляющих тело цикла целевой операции, выполняемой в каждом из программных потоков, или первые 128 байт этого кода.
Результаты Hyper-V 2012
На сервер установлена ОС ws2012 R2 Standart и установлены все обновления на момент тестирования.
Тестовая VM портировалась с платформы VMware на платформу Microsoft.
Показания производительности снимались с хоста:
Что представляет собой технология Intel Hyper Threading?
Итак, что же это такое? Если не лезть в дебри компьютерной терминологии, а говорить обычным языком, данная технология была создана для увеличения потока команд, одновременно обрабатываемых центральным процессором.
Как правило, сегодня современные процессорные чипы используют свои вычислительные возможности всего лишь где-то на 70 %. Остальное остается, так сказать, про запас, на всякий случай. Что касается обработки потока данных, в большинстве случаев реализуется всего один поток, несмотря на то что процессор может быть многоядерным.
Вопросы производительности и конфликтов
Конечно, все это хорошо, но иногда в обработке данных может наблюдаться и замедление работы. Связано это большей частью с так называемым модулем предсказания ветвления или недостаточным объемом кэша, когда происходит его постоянная перезагрузка.
Если говорить об основном модуле, тут ситуация такова, что в некоторых случаях первый поток может затребовать данные из второго, а они в данный момент еще не обработаны или находятся в очереди на обработку. Не менее распространенными можно назвать ситуации, когда ядро центрального процессора имеет слишком сильную нагрузку, а основной модуль, несмотря на это, все равно посылает на него данные. Наконец, некоторые программы и приложения, в частности ресурсоемкие онлайн-игры, могут достаточно сильно притормаживать, хотя бы только потому, что в них отсутствует оптимизация под использование такой технологии.
С играми ведь что получается? Со своей стороны, пользовательская компьютерная система пытается оптимизировать потоки данных из приложения на сервере. Но вот беда – игра-то не умеет распределять потоки данных разного типа, так сказать, сваливая все в одну кучу. По большому счету она на это бывает и вовсе не рассчитана.
Кстати, зачастую в 2-ядерных процессорах рост производительности намного выше, чем, например, в 4-ядерных. У последних просто своих вычислительных мощностей хватает.
Опыт №3. 16 потоков на 8 процессоров, Hyper-Threading включен
Рис.4 Чтение шестнадцатью потоками. Количество используемых логических процессоров равно восьми
Hyper-Threading включен. Максимальная скорость 800722 мегабайт в секунду, в результате включения Hyper-Threading почти не выросла. Большой минус – точка перегиба имеет место при размере блока около 16 килобайт. Включение Hyper-Threading немного увеличило максимальную скорость, но падение скорости теперь наступает при вдвое меньшем размере блока – около 16 килобайт, поэтому существенно упала средняя скорость. Это не удивительно, каждое ядро имеет собственную кэш-память первого уровня, в то время, как логические процессоры одного ядра, используют ее совместно.
Исследуемая платформа
Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.
Рис.1 Конфигурация исследуемой платформы.
Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой, но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.
Начну с результатов ESXi
На сервер установлена версия ESXi сервера 5.1-1483097.
Про логику работы ESXi + Hyperthreading на Хабре опубликован интересный материал «Оптимизация работы виртуальной инфраструктуры на базе VMWare vSphere», рекомендую к ознакомлению.
Несколько экспериментов с размерами vcpu, технология intel HT активна, воспроизводился тестовый ролик с качеством 480p.
Как видно из результатов, при использовании 8 потоков на терминальном сервере удалось запустить еще одну копию фильма и получить средний прирост в 20%. А вот разница между виртуальными процессорами и виртуальными ядрами в случае одного физического процессором незаметна.
Нагрузку я фиксировал с VM, если фиксировать с хоста — цифры будут другими, по какой-то причине хост сервер фиксирует отличный от VM результат. Вот как это выглядит при работе реальных пользователей:
В следующих тестах я буду выключать HT в биосе и воспроизводить ролики с качеством 480р, 720р и 1080р.
Что полезного в технологии Hyper Threading?
Напоследок остается отметить некоторые преимущества использования Hyper Threading. Для чего все это делается, зачем нужно увеличить мощность процессора в плане обработки данных?
Тем, кто работает с ресурсоемкими программами, объяснять ничего не нужно. Наверняка многие знают, что математические, проектировочные, графические, видео- и аудиоредакторы требуют в своей работе не то что много, а очень много системных ресурсов, из-за чего вся система нагружается до такой степени, что начинает просто тормозить. Вот чтобы этого не происходило, и активируется поддержка Hyper Threading.
Результаты Hyper-V 2008
На сервер установлена ОС ws2008 R2 Standart и установлены все обновления на момент тестирования.
Показания производительности снимались с хоста, однако платформа Hyper-V 2008 с активным HT не позволила создать VM с 8 vcpu, в связи с чем получены странные результаты.
После того как, я не смог запустить VM в конфигурации 8 vcpu решил проверить работу Hyper-V 2008 в связке с VDI. Были созданы несколько VM с ОС Windows 7 x86, все обновления установлены.
Результаты для 4 vcpu per VM:
Результаты для 2 vcpu per VM:
Конфигурация с 2 vcpu per VM показала результат лучше, очень заметно для ролика 1080р.
Немного истории
Теперь немного окунемся в историю этой разработки. Впервые поддержка Hyper Threading появилась только в процессорах Intel Pentium 4, а затем ее реализация была продолжена в серии Intel Core iX (где X – серии процессоров: 3, 5, 7) и даже в процессорах для мобильных девайсов серии Atom. Примечательно, что в линейке процессорных чипов Core 2 она почему-то отсутствует.
Тогда, правда, прирост производительности был достаточно слабым, где-то на уровне 15-20 %, что говорило о том, что сам процессор не имел должной вычислительной мощности, а созданная технология как бы обогнала свое время. Впрочем, сегодня Hyper Threading есть практически во всех современных чипах. К тому же для увеличения мощности CPU сам процесс задействует всего лишь 5 % поверхности кристалла, оставляя, таким образом, место для обработки основного потока данных и команд.
Сравнения всех платформ
Для сравнения буду использовать результаты, полученные для видео 480р:
Можно сделать следующие выводы:
Использование HT дает результат, который можно заметить в много поточных задачах. Пользу HT в задачах более «узких» нужно проверять.
В проведенных тестах явного лидера между платформами нет. А обладателям лицензий ws2008, которые используются для Hyper-V, стоит задуматься про апдейт, если есть необходимость использовать большие VM.
Получить результат максимально приближенный к ФС позволит инфраструктура VDI.
Думаю, данный результат обеспечил кодек RemoteFX 8.
Пользователи, хоть раз занимавшиеся настройкой BIOS, вероятно, замечали, что там встречается многим непонятный параметр Intel Hyper Threading. И далеко не каждый знает, что это за технология и для чего она создана. Попробуем разобраться, что такое Hyper Threading, как включить использование этой поддержки, а заодно выясним, какие преимущества для работы компьютера дает такая настройка. В принципе, ничего сложного для понимания здесь нет.
Исследуемая платформа
Объект экспериментов – ноутбук ASUS N750JK c процессором Intel Core i7-4700HQ. Тактовая частота 2.4GHz, повышаемая в режиме Intel Turbo Boost до 3.4GHz. Установлено 16 гигабайт оперативной памяти DDR3-1600 (PC3-12800), работающей в двухканальном режиме. Операционная система – Microsoft Windows 8.1 64 бита.
Рис.1 Конфигурация исследуемой платформы.
Процессор исследуемой платформы содержит 4 ядра, что при включении технологии Hyper-Threading обеспечивает аппаратную поддержку 8 потоков или логических процессоров. Эту информацию Firmware платформы передает операционной системе посредством ACPI-таблицы MADT (Multiple APIC Description Table). Поскольку платформа содержит только один контроллер оперативной памяти, таблица SRAT (System Resource Affinity Table), декларирующая приближенность процессорных ядер к контроллерам памяти, отсутствует. Очевидно, исследуемый ноутбук не является NUMA-платформой, но операционная система, в целях унификации, рассматривает его как NUMA-систему с одним доменом, о чем говорит строка NUMA Nodes = 1. Факт, принципиальный для наших экспериментов – кэш память данных первого уровня имеет размер 32 килобайта на каждое из четырех ядер. Два логических процессора, разделяющие одно ядро, используют кэш-память первого и второго уровней совместно.
Выводы
Исследованная операция достаточно хорошо масштабируется на многоядерном процессоре. Причины – каждое из ядер содержит собственную кэш-память первого и второго уровней, размер целевого блока сопоставим с размером кэш-памяти, и каждый из потоков работает со своим диапазоном адресов. В академических целях мы создали такие условия в синтетическом тесте, понимая, что реальные приложения обычно далеки от идеальной оптимизации. А вот включение Hyper-Threading, даже в этих условиях дало негативный эффект, при небольшой прибавке пиковой скорости, имеет место существенный проигрыш в скорости обработки блоков, размер которых находится в диапазоне от 16 до 32 килобайт.
Многим технология Hyper-Threading запомнилась, как технология созданная компанией INTEL. Хотя истории создания самой технологии я не нашел, нашлась небольшая подсказка, ведущая к другой, более мелкой компании. И здесь я решил разобраться.
Введение
Как мы помним технология Hyper-threading(далее HT), принадлежит Интел, и используется в широком спектре процессоров, допустим она использовалась в процессорах Pentium 4, Core i3/i5/i7, а также в линейке серверных процессорах. Википедия говорит про данную технологию «технология, разработанная компанией Intel для процессоров на микроархитектуре NetBurst», а также английская википедия отсылается к Intel, говоря расплывчато.
Как многие помнят, HT это «программный комплекс»(информация взята с форума в 201х году, к сожалению ссылка утеряна прим. авт.). Хотя он реализован в железе, о истории создания этой технологии практически ничего не известно. И тут стоит разобраться.
Начало поиска
Итак, благодаря сервису Google, я могу искать патенты не напрягаясь. И первым мы вписываем HT, результат удивляет, а именно:
Никакого прямого описания технологии HT. Только приближенные патенты, того что нужно не нашел. Хотя стоит обратить внимания на патент номер 2, описывающий отключение технологии HT, без намеков на её реализацию на уровне железа. Но данная статья не посвящена именно этому патенту, поэтому я пойду дальше.
Поиск информации
И логично обратится к истории создания HT, но тут тоже фиаско, все ведет к Интелу, никаких догадок. И наконец я ввел в гугле «hyper threading patent» и выдало несколько статей:
Из этих результатов меня заинтересовал третий. Я решил сделать его перевод в вольном стиле:
«Еще в 1999 году AMD подала заявку на патент, который дает им право выпустить процессор с технологией Hyper-Threading. Название технологии имело иное наименование, но это дает полное понимание технологии: „Microprocessor configured to execute multiple threads including interrupt service routines“ (Конфигурация процессора для выполнения нескольких потоков, включающее прерывание). Патент, как несложно догадаться, описывает как процессор может выполнять несколько потоков одновременно.
В рамках этого патента мы могли-бы увидеть технологию Hyper-Threading в процессорах Athlon, ожидающихся в 2003 году. В ином случае AMD может не выдержать конкурентной борьбы с INTEL.»
Меня заинтересовала эта новость. А именно технология указанная в этой статье.
Разрыв покрова
Вернувшись в патенты гугла я решил забить эту технологию, и мне выдало очень интересный результат:
А теперь пройдемся по истории покупок патента:
Меня заинтересовала лицензирование патента в 2002 году «Анонимным» игроком на рынке, немного загуглив, любой может выведать информацию о том, с какой технологией в тот месяц вышел процессор серии Pentium 4. И ему понравилось настолько, что он решил продлить патент еще на 8 лет, а потом на 12. Думаю выводы более менее очевидны.
Выводы
Ничего точно сказать я не могу, ибо мои знания английского не позволяют мне переводить этот патент, длинною в жизнь. Но данная статья заставила меня задуматься, о некоторых аспектах HT, допустим, что «изначальная» реализация данной технологии лежит на красном гиганте, а вот последующая, имеющая название «Hyper-threading», уже лежит на другой небезызвестной компании.
Автор этой статьи ничего утверждать не будет, но он надеется на подсказки со стороны читателей. И надеюсь вам было интересно почитать мои размышления на эту тему, не говоря уж о новой информации для себя.
Всегда относился к Intel Hyper-Threading как к маркетинговому продукту. Но недавно я взглянул на эту технологию под другим углом.
Настал момент, когда лицензия vSphere Standart позволила создавать и запускать виртуальные машины с количеством виртуальных процессоров равных 8. О том, чем это грозит в случае установленного процессора с 4-мя физическими ядрами и поддержкой Hyper-Threading, читайте дальше.
Думаю, данный материал нужно рассматривать как продолжение моих попыток ускорить работу терминального сервера, про это я писал тут.
Принцип действия Hyper-Threading основывается на том, что в каждый момент времени только часть ресурсов процессора используется при выполнении программного кода. Неиспользуемые ресурсы также можно загрузить работой — например, задействовать для параллельного выполнения еще одного приложения либо другого потока этого же приложения.
Следуя слогану Intel «Чем больше задач, тем выше эффективность работы», чтобы увидеть результат я буду запускать в разных сессиях на терминальном сервере просмотр фильмов. Чем больше я смогу запустить фильмов, тем лучше; снижение нагрузки на процессор также приветствуется.
На VM, подготовленную для тестирования, установлена ОС ws2008 R2 Standart. На момент тестирования были установлены все обновления. Для воспроизведения роликов установлен кодек и плеер DIVX.
Тестовый стенд собран из сервера HP ML350 G6 c процессором Intel Xeon E5620 1шт.
Результаты физического сервера ws2008 R2
Эти данные будут использоваться как эталонные:
Читайте также: