Simultaneous Multithreading (SMT) в топовом AMD Ryzen 7 2700X: тестирование в синтетике и играх
31-07-2018
Современные процессоры столь сложны, что эффективно задействовать одновременно все их узлы довольно сложно. Именно поэтому, стремясь повысить КПД, компания Intel уже давно представила технологию Hyper-Threading. У новых процессоров AMD Ryzen тоже реализован такой подход.
Представьте, что вам нужно построить дом и у вас даже есть помощники, но каждый из них специалист в чем-то одном. Если вы будете работать строго поочередно, то процесс затянется на очень долго, поэтому лучше попробовать одновременно выполнять разные задачи, когда это возможно. Тот же принцип применим к процессорам: можно организовать параллельный поток обработки данных на простаивающих узлах.
В переводе с английского SMT (Simultaneous MultiThreading) означает «одновременная многопоточность». Ее суть в том, что операционная система представляет каждое физическое ядро процессора в виде двух логических или виртуальных ядер, и направляет им на обработку два потока данных вместо одного. Поскольку процессам приходится конкурировать за ресурсы одного ядра, то в теории его узлы полнее загружены работой и не простаивают, то есть повышается эффективность.
Наибольшая сложность состоит в том, чтобы хорошо реализовать гибкую систему доступа потоков к вычислительным ресурсам ядра, и они не тормозили друг друга. Для этого в разных блоках микроархитектуры AMD Zen применяются 4 способа. Зеленые блоки используют квантование по времени, то есть отводят одинаковое время для каждого потока. Если система на основе внутреннего анализа выделяет какой-то из двух потоков в качестве приоритетного, то он первым получает доступ к синим блокам. Но один из двух потоков может быть исходно помечен как более приоритетный, в таком случае он первым получает доступ к бирюзовым блокам. Остальные узлы, раскрашенные красным, действуют по принципу «кто первым встал, того и тапки».
Кроме того, для эффективной работы недостаточно реализовать технологию SMT на аппаратном уровне процессора. Ее также должны поддерживать операционная система, драйверы и прикладные программы. Поэтому поначалу с AMD Zen было не все гладко в этом плане. Например, система могла по максимуму загрузить два потока одного ядра или половины ядер, в то время как остальные простаивали. Само собой, вместо прироста получалось замедление работы. За прошедший год ситуация в этом плане должна была заметно улучшиться, но так ли это на самом деле? Давайте проверим.
В основе тестового стенда находится 8-ядерный флагман AMD Ryzen 7 2700X, который может работать в 16-поточном режиме. Он установлен на материнскую плату MSI X470 Gaming M7 AC и охлаждается СВО от be quiet!. Чтобы VRM материнской платы не перегревался и не снижал производительность системы, сверху мы положили вентилятор Noctua NF-A14 industrialPPC. Операционная система и требовательные к дисковой подсистеме игры были установлены на SSD серии GOODRAM Iridium PRO, остальные – на HDD от Seagate. Обработка графики была возложена на видеокарту MSI GeForce GTX 1070 Ti GAMING 8G с эффективным кулером. Все это добро было собрано на Thermaltake Core P5 TGE, а за питание отвечал блок серии Seasonic PRIME.
Тестовый стенд:
- AMD Ryzen 7 2700X
- MSI X470 Gaming M7 AC
- be quiet! Silent Loop 240mm
- 2x 8GB DDR4-3400 G.Skill Sniper X
- MSI GeForce GTX 1070 Ti GAMING 8G
- GOODRAM Iridium PRO 240GB | 960GB
- Seagate IronWolf 2TB
- Seasonic PRIME 850 W Titanium
- Thermaltake Core P5 TGE
- AOC U2879VF
Сразу же отметим, что мы решили зафиксировать частоту процессора на отметке 4 ГГц, чтобы технологии динамического разгона не влияли на результаты тестирования. А для повышения стабильности тактовой частоты вручную выключили опцию Spread Spectrum. Она позволяла тактовому генератору выдавать плавающую частоту, чтобы снизить электромагнитные наводки от компьютера на окружающее оборудование. Сама же технология SMT по умолчанию активна, но в BIOS ее можно отключить.
Переходим к тестированию, и начнем его с нескольких синтетических бенчмарков. В архиваторе 7-ZIP преимущество от работы технологии SMT оценивается в 16-59%.
Активация этой опции в WinRAR позволяет поднять общую скорость на 19%.
Очень интересными получились результаты в CINEBENCH R15: производительность исключительно процессорной части повышается на 40% при использовании SMT. Зато в связке с видеокартой все наоборот – результаты улучшаются на 10% после ее деактивации.
В тесте x265 HD Benchmark после выключения многопоточности время кодирования возросло на 12%, т.е. и в этой задаче от многопоточности есть некоторый прок.
RealBench в целом положительно оценивает работу технологии SMT, но прирост зависит от конкретной задачи: при редактировании фото в GIMP, мультизадачном режиме и в тесте OpenCL бонус составил всего 2-3%. И лишь при кодировании видео показатель улучшился на 23%.
Как видим, в рабочих задачах в среднем бонус от использования SMT будет на уровне 18%, а в некоторых хорошо оптимизированных под многопоточность приложениях ускорение достигнет 40% и более. Пока все неплохо.
А какое положение дел в играх? Ведь именно тут можно годами ждать оптимизацию и не дождаться, а инертные движки до сих пор учатся работать на многоядерных процессорах.
Тест будем проводить в два этапа: сначала запустим бенчмарки в HD-разрешении, чтобы умышленно снизить нагрузку на видеокарту и лучше прочувствовать разницу; потом перейдем в Full HD, чтобы посмотреть, как это заметно при более реальных условиях.
В основном для мониторинга будем использовать утилиту FPS Monitor. Она позволяет настраивать интерфейс и выводить не только процент загрузки процессора и видеокарты, но и полезную статистику. Например, показатели 1 и 0,1% Low, они же редкие и очень редкие события, корректнее отображают уровень комфорта в игре, чем минимальный FPS. Чем меньше между ними разница и чем они ближе к среднему FPS, тем плавнее видеоряд и комфортнее геймплей. И не обращайте внимания на температуру процессора – в данном случае она отображается некорректно.
Начнем с престарелого движка Counter-Strike: Global Offensive. При автонастройках система выбрала очень высокие параметры и средний FPS был на 6% выше в системе с SMT. Видимо фоновые боты хорошо параллелятся. Зато статистика 1 и 0,1% Low была на 7-27% лучше при работе в 8-поточном режиме.
Тот факт, что старые игры больше ценят производительность ядра, чем многопоточность, хорошо видно и на примере Far Cry Primal. Здесь уже фиксируем прирост по всем показателям на уровне 12-20%.
Отключение SMT в Rainbow Six Siege также приносит позитивный эффект. И хотя мониторинг показывает неплохую балансировку задач между 16 логическими ядрами, все же в условиях отсутствия конкуренции за ресурсы бонус от производительности может достигать 35%.
В теории DirectX 12 позволяет лучше распределять задачи между ядрами и эффективнее использовать ресурсы CPU, поэтому запустив Deus Ex: Mankind Divided в этом режиме при ультра пресете, мы ожидали увидеть преимущество за SMT, но по факту его не оказалось. Наоборот, работа в 8-поточном режиме обеспечила преимущество в 10-16%.
В Hitman при том же API четкой тенденции не прослеживается: средний фреймрейт улучшается от выключения SMT на 2,5%, а показатель 1% Low на 10% ухудшается. В целом же статистика довольно похожая, поэтому в данном случае наличие или отсутствие SMT роли не играет.
Еще более равная ситуация наблюдается в Assassin's Creed Origins при максимальных настройках: разница в показателях составляет 2-5% в пользу SMT, но на практике это 1-2 кадра/с, что вполне можно списать на погрешность измерения.
И лишь Far Cry 5 демонстрирует заметный выигрыш от включения многопоточности на Ryzen 7 2700X, правда, только в одном показателе очень редких событий – прирост составляет 53%. По остальным разница не превышает 4%, что можно списать на погрешность измерения.
Подписаться на наши каналы | |||||
![]() |
![]() |
![]() |
![]() |