у некоторых процов есть т.н. гиперпоточность — физически ядро одно, блок выборки инструкций один, а конвейера исполняющих два. Некоторый софт ОТВРАТИТЕЛЬНО работает с виртуальными ядрами, просто алгоритмы из эпохи царя-гороха, а там паузы передачи данных, вся херня. И ИНОГДА это очень выручает.
собсно, это причина, по которой сравнивать однопоточную производительность Apple M1 и х86_64 бессмысленно. У х86 блок предсказания ветвлений и выборки инструкций гораздо производительней вычислительного ядра, и поэтому в нём придумали гиперпоточность. И сравнивать надо 1 физическое ядро на 1 физическое, а не 1 на 1/2.