Kingston на оперативном просторе: оверклокинг и HyperX HX434C19FBK2

16 мая 2018

Успех экстремальных оверклокерских опытов зависит от фи­зи­че­ской вы­нос­ли­вос­ти компонентов платформы, стабильности пи­та­ю­щих на­пря­же­ний и эффективного отвода тепла. Кроме этого сле­ду­ет при­нять во вни­ма­ние ин­теллектуализацию разгона, главным инструментом которой, безусловно, яв­ля­ют­ся овер­кло­кер­ские профили (XMP). Записав в SPD-чип параметры для все­го ря­да экс­тре­маль­ных частот, производитель модуля, как эксперт, де­лит­ся сво­им бес­цен­ным опытом с энтузиастами.

Условия и цель опыта

Будет небольшой оверклокерский эксперимент и много инсайдерской информации о производительности и бенч­мар­ках. Для этого нам понадобится системная плата MSI X370 XPower Gaming Titanium с процессором AMD Ryzen 5 1600 Six-Core Processor и оперативная память HyperX HX434C19FBK2 в двухканальной конфигурации на ос­но­ве двух DIMM. Отметим, что информация в SPD отличается от маркетинговой — HX3466C19D4/16G.

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

Итак, разгоняем оперативную память до частоты 3466 MHz, основываясь на параметрах XMP-профилей с ми­ни­маль­ны­ми ручными правками опций CMOS Setup. Для оценки эффективности разгона за точку отсчета возьмем штатный параметр DDR Speed, равный 2666 MHz. Интересует, как изменится производительность интерфейса при увеличении на 30% частоты тактирования шины памяти.

Выбор XMP-профиля в CMOS Setup платформы для разгона оперативной памяти до 3466 MHz
Выбор XMP-профиля в CMOS Setup платформы для разгона оперативной памяти до 3466 MHz

Отметим, нумерация XMP-профилей в различных экранах CMOS Setup может различаться.

Для напряжения питания DRAM Voltage было вручную установлено значение 1.300V

Для напряжения питания DRAM Voltage было вручную установлено значение 1.300V, так как алгоритм его ав­то­ма­ти­че­ского определения, реализуемый UEFI платформы, кажется, только ухудшает стабильность.

Что показывает AIDA64 от FinalWire

Прежде, чем выйти на экстремальное значение в 3466 MHz, зафиксируем исходную точку на штатной для данной платформы частоте в 2666 MHz с помощью популярной утилиты AIDA64 от FinalWire. Выполним последовательно тесты чтения и записи, используя полученные из этого «черного ящика» результаты для верификации заранее из­вест­ных алгоритмов оценки производительности.

Чтение при DRAM CLK 2666 MHz: немногим более 41 GBPS
Чтение при DRAM CLK 2666 MHz: немногим более 41 GBPS
(по клику
— на новой вкладке полный экран теста AIDA64 Extreme с указанием таймингов)

Запись при DRAM CLK 2666 MHz: чуть менее 41 GBPS
Запись при DRAM CLK 2666 MHz: чуть менее 41 GBPS

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

Чтение при DRAM CLK 3466 MHz: около 49 GBPS
Чтение при DRAM CLK 3466 MHz: около 49 GBPS

Запись при DRAM CLK 3466 MHz: около 47 GBPS
Запись при DRAM CLK 3466 MHz: около 47 GBPS

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

Запускаем NUMA CPU and RAM Benchmark

Утилита NCRB (NUMA CPU and RAM Benchmark), разработанная в тестовой лаборатории «Компостер», дает оценку производительности кэш-памяти и DRAM в среде Windows x64.

Экран системной информации утилиты NUMA CPU and RAM Benchmark
Экран системной информации

Первая серия замеров — на консервативной частоте 2666 MHz.

Скорость чтения оперативной памяти при DRAM CLK 2666 MHz равна 40901 MBPS
Скорость чтения оперативной памяти при DRAM CLK 2666 MHz равна 40901 MBPS
(текстовое окно Simple mode benchmark утилиты NCRB)

Зависимость скорости чтения от размера читаемого блока, DRAM CLK 2666 MHz
Зависимость скорости чтения от размера читаемого блока, DRAM CLK 2666 MHz

Скорость записи данных в оперативную память при DRAM CLK 2666 MHz равна 39042 MBPS
Скорость записи данных в оперативную память при DRAM CLK 2666 MHz равна 39042 MBPS
(текстовое окно Simple mode benchmark утилиты NCRB)

Зависимость скорости записи от размера записываемого блока, DRAM CLK 2666 MHz
Зависимость скорости записи от размера записываемого блока, DRAM CLK 2666 MHz

Вторая серия замеров — на экстремальной частоте 3466 MHz.

Скорость чтения оперативной памяти при DRAM CLK 3466  MHz равна 49549 MBPS
Скорость чтения оперативной памяти при DRAM CLK 3466  MHz равна 49549 MBPS
(текстовое окно Simple mode benchmark утилиты NCRB)

Зависимость скорости чтения от размера читаемого блока, DRAM CLK 3466 MHz
Зависимость скорости чтения от размера читаемого блока, DRAM CLK 3466 MHz

Скорость записи данных в оперативную память при DRAM CLK 3466 MHz равна 46846 MBPS
Скорость записи данных в оперативную память при DRAM CLK 3466 MHz равна 46846 MBPS
(текстовое окно Simple mode benchmark утилиты NCRB)

Зависимость скорости записи от размера записываемого блока, DRAM CLK 3466 MHz
Зависимость скорости записи от размера записываемого блока, DRAM CLK 3466 MHz

Все операции выполняются в 6 потоков, по числу ядер процессора. В операционной системе включена поддержка Large Pages. Используются 256-битные инструкции AVX в режиме некэшируемых операций чтения и записи, о чем детально пойдет речь ниже.

В силу особенностей процессора, полностью избежать влияния кэш-памяти на операцию чтения DRAM не уда­лось, о чем свидетельствуют графики. Это значит, что для чтения информативна минимальная скорость, со­от­вет­ст­ву­ю­щая максимальному значению параметра CPI (Clocks Per Instruction), а не усредненная величина. Для записи устранение влияния кэш-памяти происходит достаточно эффективно.

Интегральный результат, формируемый в текстовом окне Simple mode benchmark, учитывает эти обстоятельства автоматически.

Про динамический оверклокинг

Устойчивым трендом последних лет является интеллектуализация оверклокинга. Динамический выбор оп­ти­маль­ной частоты тактирования ядра является функцией множества факторов, в частности температуры CPU и его ра­бо­чей нагрузки. Принимая во внимание, что главные участники событий: термодатчик и схема умножения частоты находятся на процессорном кристалле, минимизация роли программных посредников выглядит логичным шагом, гарантирующим как оптимальную утилизацию термального запаса, так и оперативную реакцию на достижение критических температур.

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

Результаты измерений производительности ОЗУ главным образом зависят от тактовой частоты DRAM-ин­тер­фей­са, где в качестве опорной частоты утилита NCRB использует счетчик TSC. Значения обеих частот являются кон­стан­та­ми в течение сеанса, по крайней мере, на исследуемой платформе, поэтому динамический разгон не стал критическим фактором для исследования DRAM. Забегая вперед отметим, что на скорость работы кэш-памяти указанное обстоятельство влияет в большей степени.

Про некэшируемую запись и чтение

В тестах, оценивающих производительность DRAM, роль кэш-памяти должна быть минимизирована. Одним из ре­ше­ний является выбор размера читаемых или записываемых данных, кратно превышающего размер кэш-памяти последнего уровня (в данном случае L3). Но ограничившись такой мерой, достоверный результат получить не­воз­мож­но. Загрузка в кэш-память «ненужной» информации, то есть такой, которая будет вытеснена еще до момента ее повторного использования, приводит к вытеснению «нужной» или многократно используемой информации, в частности контекста выполняемого приложения и как следствие, некоторому падению производительности.

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

К счастью, разработчики x86-архитектуры начали учитывать это обстоятельство еще в процессоре Pentium III. Тер­мин non-temporal hint, появившийся с набором команд SSE, означает возможность явного указания процессору на то, что определенные данные не следует кэшировать. Приведем примеры инструкций некэшируемого чтения и за­пи­си для современных процессоров.


Описание инструкции PREFETCHNTA в документации AMD64 Architecture Programmer's manual

SSE-инструкция PREFETCHNTA применяется перед операцией чтения из памяти и несет два атрибута:

  1. Атрибут prefetch hint означает заблаговременное чтение из оперативной памяти, что обеспечит готовность данных в момент их востребования.
  2. Атрибут non-temporal hint означает, что загружаемые данные с высокой вероятностью будут использованы однократно, а значит предписываемую заблаговременную загрузку следует выполнить не в кэш-память, а в Implementation-Specific транзитные буферы.


Описание инструкции VMOVNTPD в документации AMD64 Architecture Programmer's manual

AVX-инструкция VMOVNTPD записывает в память 256-битный операнд, источником которого является один из векторных регистров YMM0-YMM15. При этом, в отличие от обычной 256-битной записи (инструкции VMOVAPD), адресуемая область памяти не кэшируется.

Теория и практика

Проверим соответствие теории и практики, разобравшись в физическом смысле полученных результатов. Ско­рость работы любого интерфейса определяется произведением ширины шины (разрядности) и эффективной час­то­ты передачи данных.

Разрядность одного DRAM-канала составляет 64 бита или 8 байт. Количество каналов равно 2. Поскольку ин­фор­ма­ция передается по фронту и спаду синхросигнала, эффективная частота передачи данных равна удвоенному значению физической тактовой частоты интерфейса. Для исследованных конфигураций, первая из величин ус­та­нав­ли­ва­лась на тестовой платформе в диапазоне от 2666 и до 3466 MHz. Перемножив ко­ли­че­ст­во байт на ка­нал, ко­ли­че­ство каналов и эффективную тактовую частоту, получим.

  • 8 * 2 * 2666 = 42656
  • 8 * 2 * 3466 = 55456

Для перевода в гигабайты в секунду, полученные значения потребуется разделить на 1024, получим со­от­вет­ст­вен­но около 41.6 и 54.2 GBPS.

Рассмотрим сводную диаграмму полученных результатов. Очевидно, имеет место нелинейность: приращение производительности меньше приращения тактовой частоты интерфейса. Почему?

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

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

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

Резюме

Сделаем выводы, оставив за скобками многочисленные технические подробности и посмотрев на ситуацию гла­за­ми потребителя. Приращение производительности в 19-25%, доказанное независимыми тестовыми методами, по­зво­ля­ет утверждать, что о тупике экстенсивного развития DRAM говорить пока можно лишь в будущем времени, а протестированные DDR4-модули памяти HyperX HX434C19FBK2 достойны внимания энтузиастов. Их показатели совсем немного уступают теоретическим рас­че­там.

Теги: