Игровые режимы и архитектура, тестирование задержки Infinity Fabric
Мы подробно рассмотрели архитектуру AMD Zen, а также подробно рассмотрели Infinity Fabric. Перейдите к этим статьям для получения дополнительной информации.
Zeppelin Die Primer
Огромный пакет Threadripper скрывает под собой большую сложность, но мы сделаем все возможное, чтобы упростить и показать, как он соотносится с инновационными функциями AMD Creator и Game Mode.
AMD Ryzen Threadripper 1950X (AMD) на Amazon за 81,99 долларов США.
В архитектуре Zen используется четырехъядерный строительный блок CCX (CPU Complex). AMD украшает каждый CCX 8 МБ кэш-памяти L3, разделенной на четыре части; каждое ядро в CCX обращается ко всем слайсам L3 с одинаковой средней задержкой. Два CCX объединяются, чтобы создать восьмиядерный кристалл Ryzen 7 (большие оранжевые блоки на втором изображении ниже), и они взаимодействуют через межсоединение AMD Infinity Fabric. CCX используют один и тот же двухканальный контроллер памяти. По сути, это два четырехъядерных процессора, которые общаются друг с другом по пути Infinity Fabric, который также обрабатывает трафик северного моста и PCIe.
Все модели Ryzen 7, 5 и 3 оснащены одним и тем же кристаллом Zeppelin. Хотя каждое ядро в четырехъядерном CCX может получить доступ к локальному кешу с одинаковой средней задержкой, попытки извлечения данных из соседних CCX влекут за собой штраф за задержку. Также страдает связь между потоками на ядрах, находящихся в разрозненных CCX, что имеет особое значение для игр. Многие игровые движки распределяют различные задачи по разным потокам, но они зависят от постоянной синхронизации между ними. Разработчики могут компенсировать некоторую задержку связи, настроив архитектуру Ryzen.
Создание Threadripper
На приведенном ниже рисунке показан кристалл процессора AMD EPYC для центра обработки данных, который имеет базовую конструкцию Threadripper. Мы видим четыре отдельных кристалла Zeppelin, соединенных через матрицу Infinity, и два CCX внутри каждого кристалла. Это создает 32-ядерный многокристальный модуль (MCM). Разумеется, Threadripper — это «всего лишь» 16-ядерный процессор. Чтобы создать эту конфигурацию, AMD заменяет два «фиктивных кристалла», которые представляют собой нефункциональные наполнители, обеспечивающие структурную целостность распределителя тепла и согласованное сопряжение с контактами сокета. Без этих темных кристаллов IHS либо сломается, когда вы затянете систему охлаждения, либо чип деформируется и не будет полностью соприкасаться с выводами. AMD отмечает, что функциональные штампы Threadripper всегда располагаются по диагонали друг от друга, что имеет смысл, учитывая ткань.
Помните, что каждый кристалл Zeppelin имеет собственную память и контроллеры PCIe. Это означает, что если рабочей нагрузке, выполняемой на кристалле, требуется доступ к данным, находящимся в памяти другого кристалла (удаленной памяти), ей приходится преодолевать гораздо больший разрыв. Это обеспечивает уровень задержки, которого мы не видели в предыдущих моделях Ryzen, и его влияние на игровую производительность огромно. Воздействие не столь серьезно для большинства профессиональных рабочих нагрузок, но некоторые из них все же страдают.
Новые переключатели
Чтобы снизить влияние удаленного доступа к памяти, AMD представляет новый режим доступа к памяти, который можно переключать либо в BIOS, либо с помощью программного обеспечения Ryzen Master. Настройки Local и Distributed переключаются между NUMA (неоднородный доступ к памяти) или UMA (универсальный доступ к памяти).
UMA (распределенный) довольно прост; это позволяет штампам получить доступ ко всей подключенной памяти. Режим NUMA (локальный) пытается сохранить все данные для процесса, выполняющегося на кристалле, ограниченным его напрямую подключенным контроллером памяти. Он устанавливает один узел NUMA на кристалл (видимый в диспетчере задач). Это уменьшает и даже, возможно, устраняет выборку данных из удаленной памяти, подключенной к другому кристаллу, хотя кристалл все еще может получить к ним доступ, если это необходимо. NUMA имеет глубокие корни на предприятии, но этот метод работает лучше всего, если программы разработаны специально для его использования. Это редкость для настольных компьютеров, но даже несмотря на то, что почти ни одно настольное приложение не предназначено для его полной поддержки, для приложений, отличных от NUMA, могут быть преимущества в производительности.
Threadripper от AMD вводит в настольные компьютеры больше ядер, чем мы когда-либо видели; некоторые программы оказываются плохо подготовленными. На самом деле, некоторые игры, такие как Far Cry Primal и серия DiRT, даже не запустятся, когда будет задействован полный набор потоков Threadripper. Очевидно, это проблема, поэтому AMD создала режим совместимости с прежними версиями, который отключает половину ядер процессора, выполняя команду «bcdedit /set numproc XX» в Windows, которая фактически отключает половину процессора. К счастью, из-за назначений ядер операционной системы команда отключает все ядра/потоки на втором кристалле. Дополнительным преимуществом этого решения является устранение связи между потоками между разрозненными кристаллами, что служит отличным решением для постоянной синхронизации между потоками во время большинства игровых нагрузок.
Поскольку изменение внесено в программное обеспечение, на «отключенный» кристалл по-прежнему подается питание, поэтому система по-прежнему может получать доступ к памяти и контроллерам PCIe, подключенным к неактивному кристаллу.
Режим игры и режим создателя
Так что же делать со всеми этими ручками? Существует четыре отдельных комбинации, которые по-разному влияют на каждое приложение или игру, поэтому вам придется перебирать их, чтобы найти наилучшую возможную комбинацию для вашей рабочей нагрузки. Это находка для тюнеров, стремящихся выжать из производительности все до последней капли, но сущий кошмар для остальных 99%.
AMD решила упростить процесс, указав две комбинации, которые лучше всего подходят для игр или стандартных приложений. Режим Creator, который является стандартной конфигурацией, раскрывает всю мощь 32 потоков. Естественно, он должен обеспечивать отличную производительность для большинства приложений для повышения производительности.
Игровой режим наполовину сокращает потоки за счет режима совместимости и уменьшает объем памяти и задержку между кристаллами в режиме локальной памяти. Мы собираемся протестировать обе конфигурации с нашим игровым пакетом и попробовать другую конфигурацию, которая также предлагает полный набор потоков.
Тестирование задержки Infinity Fabric
Непосредственная связь добавляет еще один уровень задержки к сложной архитектуре Ryzen. Как видите, те же показатели задержки не применяются к более ранним моделям Ryzen. Они также создают проблемы для некоторых приложений, например, с синхронизированными потоками или частыми выборками из удаленной памяти, но оказывают меньшее влияние на другие.
Процессор
Внутриядерная задержка
Межъядерная задержка внутри CCX
Межъядерная задержка между CCX
Средняя задержка между CCX
Реальная задержка
Средняя задержка
Средняя пропускная способность передачи
Режим создателя TR 1950X DDR-2666
13,7 — 14,1
39,4 — 43,2 нс
157,6 — 171,3
168 нс
180,6–256,7 нс
238,47 нс
90,26 ГБ/с
Режим создателя TR 1950X DDR4-3200
13,8 — 14,9
39,2 — 45,4 нс
144,9–167,2 нс
160,1 нс
213,1–227,8 нс
216,9 нс
91,67 ГБ/с
Игровой режим TR 1950X DDR4-2666
13,9–14,2 нс
39,5 — 42,3 нс
149,2–164,1 нс
159,66 нс
Икс
Икс
46,58 ГБ/с
TR 1950X Игровой режим DDR4-3200
14,3–14,9 нс
41,2 — 46,2 нс
123 — 150,6 нс
145,44 нс
Икс
Икс
45,52 ГБ/с
TR 1950X Локальная/SMT DDR4-2666
13,9–14,4 нс
39,6–43,1 нс
168,7–175,4 нс
171,48 нс
232,4 — 240,8
235,38 нс
92,7 ГБ/с
TR 1950X Локальная/SMT DDR4-3200
13,9–14,4 нс
39,9 — 44,5 нс
146,7–159,4 нс
153,89 нс
209,3–220,9 нс
212,53 нс
91 ГБ/с
Райзен 7 1800Х
14,8 нс
40,5–82,8 нс
120,9–126,2 нс
122,96 нс
Икс
Икс
48,1 ГБ/с
Райзен 5 1600Х
14,7–14,8 нс
40,6–82,8 нс
121,5–128,2 нс
123,48 нс
Икс
Икс
43,88 ГБ/с
Измерения задержки внутри ядра представляют собой связь между двумя логическими потоками, расположенными на одном физическом ядре, и на них не влияет скорость памяти. Измерения внутри CCX определяют задержку между потоками, которые находятся в одном и том же CCX, но не находятся на одном ядре. В прошлом мы наблюдали небольшие различия в производительности, но задержка внутри CCX также в значительной степени не зависит от скорости памяти. Тем не менее, мы наблюдали значительное снижение задержки между CCX, которая обозначает задержку между потоками, расположенными на двух отдельных CCX, за счет увеличения скорости передачи данных памяти с DDR4-1333 до DDR4-3200 на моделях Ryzen 5 и 7.
Та же общая тенденция сохраняется и с Threadripper. Как мы видим, переключение игрового режима устраняет задержку между кристаллами для потоков, фактически отключая один кристалл, но также уменьшает ресурсы обработки хоста. Это интересная функция, которая полезна для одних рабочих нагрузок, но ограничивает другие.
Мы также заметили, что комбинация Local/SMT, состоящая из локальных настроек и оставляющая все ядра активными (устаревшее отключено), обеспечивает наилучшее общее снижение задержки за счет разгона памяти. Мы также зафиксировали более высокую задержку Cross-CCX с процессорами Threadripper.
Процессор
Внутриядерная задержка
Межъядерная задержка
Средняя задержка между ядрами
Средняя пропускная способность передачи
Ядро i9-7900X
14,5 — 16 нс
69,3 — 82,3 нс
75,56 нс
83,21 ГБ/с
Core i9-7900X @ 3200 МТ/с
16 — 16,1 нс
76,8–91,3 нс
83,93 нс
87,31 ГБ/с
Ядро i7-6950X
13,5 — 15,4 нс
54,5 — 70,3 нс
64,64 нс
65,67 ГБ/с
Ядро i7-7700K
14,7–14,9 нс
36,8–45,1 нс
42,63 нс
35,84 ГБ/с
Мы находимся в середине более широкого набора тестов, чтобы количественно определить, как эти режимы влияют на задержку памяти и пропускную способность, среди других факторов. Следите за обновлениями.