Исследование влияния ревизии микрокода CPU в Corona Benchmark

Поиски Истины в забытом богом бенчмарке; бесполезные практически малоприменимые изыскания
29 августа 2021, воскресенье 08:38
NuJIevik для раздела Блоги

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

В какой-то мере широко освещалась эта тема после выхода микрокодов с патчами от уязвимостей Meltdown и Spectre. Технические ресурсы, проводившие тестирование процессоров с обновленными микрокодами, отметили снижение производительности.

Между тем не был поднят вопрос, какое влияние на производительность оказывает обновление микрокода вообще, без наличия чрезвычайных ситуаций и необходимости «латать» уязвимости. Соответственно, тема была освещена неполно, применительно только лишь к конкретным патчам.

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

Методика тестирования

В качестве тестируемого процессора использовался i5 6400T. Так как в 76 ревизии микрокода Intel заблокировали возможность разгона Non-K Skylake по шине, были взяты микрокоды с 04 по 74, всего – 20 версий.

Чтобы переменным фактором выступала только лишь ревизия микрокода, постоянство других факторов обеспечивалось следующим образом:

  • использовался единственный профиль разгона, фиксирующий частоту процессора, частоту и тайминги ОЗУ, прочие параметры в BIOS;
  • использовалась единственная версия BIOS, в которой подменялся лишь микрокод;
  • использовался один и тот же софт, никаких изменений, оптимизаций в процессе не вносилось.

Чтобы операционная система не изменяла ревизию микрокода, был переименован файл «mcupdate_GenuineIntel.dll» по пути «C:\Windows\System32\». Контроль версии микрокода осуществлялся с помощью Aida64.

Тесты проводились в Windows 7 Ultimate x64 SP1 с установкой классической темы и приоритета реального времени на процесс Corona Benchmark. Для каждого микрокода проводилось по два прогона, каждый прогон – после холодного старта. В двух случаях используются результаты трех прогонов.

Разница в производительности

Результаты измерений и вычислений занесены в таблицу:

rev_micr res1, rays/s res2, rays/s res3, rays/s average, rays/s average
δ
04 1547492 1545641 - 1546566,5 100,273%
0,060%
10 1547920 1535710
1547403
1543677,667 100,086%
0,516%
16 1545066 1548261 - 1546663,5 100,279%
0,103%
1A 1544850 1548325 - 1546587,5 100,274%
0,112%
1C 1548073 1550528 - 1549300,5 100,450%
0,079%
1E 1545144 1537576
1548873
1543864,333 100,098%
0,407%
20 1539749 1544963 - 1542356 100,000%
0,169%
24 1548236 1547088 - 1547662 100,344%
0,037%
2E 1539374 1546015 - 1542694,5 100,022%
0,215%
30 1542613 1545941 - 1544277 100,125%
0,108%
32 1544226 1542251 - 1543238,5 100,057%
0,064%
34 1545081 1549584 - 1547332,5 100,323%
0,146%
3A 1541962 1545631 - 1543796,5 100,093%
0,119%
4A 1545926 1544305 - 1545115,5 100,179%
0,052%
4C 1544369 1545120 - 1544744,5 100,155%
0,024%
50 1545140 1544963 - 1545051,5 100,175%
0,006%
56 1545798 1544560 - 1545179 100,183%
0,040%
5C 1543981 1544560 - 1544270,5 100,124%
0,019%
6A 1548266 1547605 - 1547935,5 100,362%
0,021%
74 1546722 1548157 - 1547439,5 100,330%
0,046%


За 100% в таблице принят наименьший результат. Разница между ним и наибольшим результатом составляет всего лишь 0,45%. Тем не менее это значение превышает среднюю статистическую погрешность (0,117%).

Скриншоты всех без исключения прогонов, на которых видны параметры процессора и ОЗУ, ревизия микрокода и результат, залиты на Яндекс.диск. Можно сравнить с табличными значениями.

Разница в рабочем напряжении

Сосредоточим теперь внимание на другом аспекте – нахождении минимального напряжения на ядра при одинаковом разгоне. Используем все тот же пресет разгона. Следующие параметры были зафиксированы:

  • VCCIO Voltage – 1,25V;
  • System Agent Voltage – 1,3V;
  • CPU Load-Line Calibration – Level 6;
  • CPU VRM Switching Frequency(KHz) – 500.

В таких условиях находилось минимальное напряжение, при котором процессор мог пройти Corona Benchmark без ошибок. При этом в фоне был открыт HWinfo для мониторинга напряжения. Побочным результатом стала оценка влияния фоновой нагрузки (HWinfo) на результаты.

Результаты занесены в таблицу:

rev_micr cvoltage(BIOS), v cvoltage(HWinfo), v
result, rays/s result
04 1,1 1,104
1523443 101,004%
10 1,095 1,104
1508841 100,036%
16 1,1 1,104
1522889 100,968%
1A 1,1 1,104
1511497 100,212%
1C 1,095 1,104
1515570 100,482%
1E 1,1 1,104
1511991 100,245%
20 1,095 1,104
1513262 100,329%
24 1,105 1,104
1521773 100,894%
2E 1,095 1,104
1508293 100,000%
30 1,1 1,104
1513668 100,356%
4C 1,1 1,104
1512801 100,299%
5C 1,1 1,104
1508892 100,040%
6A 1,105 1,104
1510187 100,126%
74 1,105 1,104
1511314 100,200%


Следует отметить, что результаты измерения производительности, полученные на данном этапе, менее строги:

  1. из выборки исключены 6 ревизий микрокода;
  2. проводилось только по одному прогону;
  3. на результат могли повлиять «пограничные» вольтажи и легкая нестабильность.

Тем не менее можно сделать вывод, что фоновая нагрузка оказывает на результаты Corona Benchmark БОЛЬШЕЕ влияние, чем ревизия микрокода. HWinfo в фоне в среднем снизил результаты на 2 ± 0,37%.

Выводы

Исходя из результатов тестирования, ревизия микрокода CPU не оказывает сколь-нибудь значимого влияния на производительность. Разница между «худшим» и «лучшим» микрокодом составила 0,45 ± 0,117%. В то же время дополнительная фоновая нагрузка снизила средний результат на 2 ± 0,37%, что в 4 раза больше. Разумеется, ни ту ни другую разницу обнаружить в реальных задачах не удастся.

Стоит однако отметить, что разница в сравнении с новыми микрокодами, где присутствуют патчи от Meltdown и Spectre, вероятно, будет больше.

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

Так как тестирование охватывает только половину из всех вышедших для используемого процессора микрокодов (20 из 43), его нельзя назвать всеобъемлющим. Кроме того систематически не исследовано различие разгона на разных версиях микрокода. Больший разгон на определенной версии микрокода мог бы дать более заметное преимущество. Также стоит с большой осторожностью применять выводы о влиянии фоновой нагрузки на процессоры с бОльшим числом потоков, чем тестируемый.