9 янв. 2022 г.

производительность процессора M1 Pro (2021, 10 cores) при запуске ARM и Intel-кода в разных вариантах

Таблица производительности процессора M1 Pro при запуске одного и того же бенчмарка c geekbench.com версии 5.4.4 в разных вариантах.

Целью эксперимента было понять порядок замедления разных вариантов запуска.

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

Вариант запуска
(run variant)
Баллы при однопоточного запуска
Single-core cores.
Процент производительрности от нативного запуска.
Perfomance percent from native.
Native MacOS - ARM code 1769 100%
Rosetta 2 - Intel code 1347 76.1%
MacOS in Parallels VM - ARM code 1696 95.9%
Windows ARM in Parallels VM - ARM code 1527 86.3%
Windows ARM in Parallels VM - Intel code 623 35.2%
x86 CPU Emulation, default single-core CPU 75 4.2%
x86 CPU Emulation, Skylake 4-core CPU 72 4.1%

Для сравнения запуск того же теста на Intel Core i7-9750H, нативно в MacOS: 1030 баллов (58.2%).

Для эмуляции x86 CPU я использовал QEMU через обёртку UTM. В этом варианте у меня получилось поставить внутри виртуальной машины Windows XP, Windows 11, Ubuntu 20.04. Windows XP более-менее шевелилась и интерфейс работал хоть и не оч. быстро, но вполне пригодно. Интерфейсы Windows 11 и Ubuntu (Gui) тормозили оч. заметно и работать в таком режиме - точно некомфортно. В Windows 11 фоновые процессы съедают сразу 100% виртуального процессора и например нажатие кнопки Start обрабатывается 10-15 секунд прежде чем появляется меню.

В целом вариант эмуляции пригоден только если надо что-то померять или запустить оч. старый код на оч. старой системе: для современных падение производительности слишком сильное.