Было ли время циклов ссылки (RDTSC) вместо основных тактовых циклов (с первыми счетчиками)? Это объясняет ваши наблюдения.
Турбо имеет большое значение, и соотношение между максимальным и турбо макс поддерживается/номинальная тактовая частота (т.е. опорного цикла скорости клещ) отличается от различных процессоров. например see my answer on this related question
Чем ниже TDP процессора, тем больше отношение между устойчивым и максимальным. Haswell wikipedia article имеет таблицы:
84W рабочего стола i5 4570: устойчивый 3.2GHz = частота RDTSC, макс турбо 3,6 ГГц (скорость ядра, вероятно, на самом деле работает для большинства из вашего теста, если это было время, чтобы подняться из маломощная холостая скорость).
47W ноутбук i7-4960HQ: 2.6 ГГц устойчивый = частота RDTSC против 3,8 ГГц максимальная турбонаддува.
Время вашего кода с счетчиками производительности, и посмотрите на количество тактов ядра. (И много других аккуратных вещей).
Каждого Хасуэлл ядро идентично от Core-M 5watt процессоров для мощных четырехъядерных процессоров до 18 ядра Xeon (который на самом деле имеет одно ядра силового бюджета больше похож на портативном CPU); это только кеши L3, количество ядер (и межсоединений) и поддержка или нет для HT и/или Turbo, которые отличаются. В основном все вне самих ядер может быть другим, в том числе и графическим процессором. Они не отключают порты выполнения, и даже кеши L1/L2 идентичны. Я думаю, что отключение портов выполнения потребует значительных редизайнов в планировщике вне порядка и тому подобное.
Что еще более важно, каждый порт имеет хотя бы один исполнительный блок, который не найден ни на одном другом порту: p0 имеет делитель, p1 имеет целочисленный блок умножения, p5 имеет блок перетасовки, а p6 - единственный порт, могут выполнять предсказанные ветви. На самом деле, p2 и p3 являются одинаковыми портами нагрузки (и могут обрабатывать адрес хранилища uops) ...
См. Agner Fog's microarch pdf для получения дополнительной информации о внутренних устройствах Haswell, а также David Kanter's writeup с диаграммами различных блоков.
(Однако не совсем верно, что все ядро идентично: процессоры Haswell Pentium/Celeron не поддерживают AVX/AVX2 или BMI/BMI2.Я думаю, что они это делают, отключив декодирование префиксов VEX в декодерах. Это все еще имеет место для Skylake Pentiums/Celerons, поэтому благодаря Intel задержка времени, когда мы можем взять на себя поддержку новых наборов команд. Предположительно, они делают это, поэтому процессоры с дефектами в одной только верхней или нижней половине своих блоков векторного исполнения могут быть проданы как Celeron или Pentium, так же как процессоры с дефектом в некоторых из их L3 могут продаваться как i5 вместо i7)
Почему вы не предоставляете ссылку на свой тест или не публикуете полный код, чтобы мы могли попробовать его сами? В противном случае мы просто принимаем удары в темноте. – BeeOnRope