SMT — общее понятие, Hyper-Threading — название реализации Intel. AMD описывает свою реализацию как SMT; отсутствие имени Intel не означает отсутствие многопоточности.
Одновременная многопоточность — SMT
Определение
Одновременная многопоточность (SMT) — режим, в котором одно физическое ядро обслуживает несколько аппаратных потоков с общими ресурсами выполнения. У каждого потока своё архитектурное состояние, но прирост скорости не гарантирован: AMD отмечает нейтральный или отрицательный эффект для некоторых нагрузок.
Также ищут: Simultaneous Multithreading · одновременная многопоточность · симметричная многопоточность · SMT
Зачем это знать
SMT меняет число логических CPU и конкуренцию внутри ядра. Для закупки и приёмки нельзя автоматически удваивать ни физические ядра, ни полезную скорость приложения.
Карта понятия
Что подтверждено
Распространённый двухпоточный SMT предоставляет два аппаратных потока на одно физическое ядро; так работают AMD Zen и Intel Hyper-Threading.
Граница применимости: У других архитектур число потоков на ядро может отличаться, а SMT может отсутствовать.
SMT не гарантирует прирост: AMD отмечает нейтральный или отрицательный эффект для некоторых нагрузок и рекомендует проверять настройку измерениями.
Граница применимости: Результат одной нагрузки нельзя переносить на другое приложение или процессор без нового измерения.
При отключении второго аппаратного потока обычного двухпоточного SMT число доступных логических CPU сокращается, но это действие само не удаляет физические ядра. Настройки отключения ядер и SMT проверяют раздельно.
Граница применимости: Сопоставление двухпоточных реализаций Intel и AMD; фактическое число доступных CPU дополнительно зависит от конфигурации системы.
В заданной раскладке четыре исполнителя могут занять по одному потоку четырёх ядер либо оба SMT-потока двух ядер. Число исполнителей совпадает, а набор общих физических ресурсов различается.
Граница применимости: Учебное сравнение размещения при двухпоточном SMT; лучший вариант для конкретного приложения определяется измерением.
- Рекомендация редакции
Сравнивать SMT при одинаковой работе, составе системы и записанных настройках, включая число программных потоков. Результат другого теста не доказывает полезность режима для выбранного приложения.
Граница применимости: План сравнения на основе рекомендаций АМД Эпик 9004 и устройства SMT Intel; собственный результат испытания не заявляется.
Поддержка SMT процессором не является подтверждением его использования задачей. В приёмке рекомендуем сверить настройку прошивки, топологию ОС и доступные приложению контексты.
Граница применимости: Редакторский вывод из настройки SMT АМД Эпик 9004 и модели аппаратных потоков Linux; универсальная команда настройки всех платформ не предлагается.
Не путать
SMT предоставляет дополнительные контексты внутри ядра. Физическое ядро остаётся общим, поэтому число логических CPU нельзя подставлять вместо числа ядер.
Что проверить
- Проверьте поддержку SMT точной моделью и типами ядер.
- Зафиксируйте настройку прошивки и доступные логические CPU.
- Разделите число физических ядер и аппаратных потоков.
- Укажите размещение программных исполнителей по ядрам.
- Сохраните число потоков программы и ограничения ОС.
- Сравните одну нагрузку с согласованными условиями режима.
- Принимайте настройку по нужному результату, а не по большему числу CPU.
Первоисточники
- AMD EPYC and SMT Technology Brief
Описывает 2-way SMT в AMD Zen cores и два hardware thread на core.
- АМД Эпик 9004 BIOS and Workload Tuning Guide
Фиксирует два hardware thread при SMT и предупреждает о нейтральном или отрицательном эффекте на части workload.
- Hyper-Threading Technology Architecture and Microarchitecture
Первичное техническое описание Hyper-Threading как реализации simultaneous multithreading.
Связанные понятия
Курсы по теме
В каталоге
- Процессоры с поддержкой SMT — SMT даёт несколько логических потоков на ядро, а прирост от них зависит от нагрузки.
- Серверы: логические CPU для виртуализации — Число логических CPU сервера зависит от SMT — его учитывают при расчёте виртуальных машин.