Битва процессорных архитектур: 32 vs 64 vs MMX
Данное тестирование я хотел провести еще в 2006 году. В то время мне хотелось сравнить, насколько оптимизация MMX увеличит скорость вычисления хеша SHA512. Задача оказалась невыполнима - на тот момент у меня был компьютер на базе процессора Athlon XP, у которого отсутствовал набор инструкций SSE2. Это не позволяло реализовать данный алгоритм в полной мере. Почему в Intel решили реализовать операцию сложения 64-х битных MMX регистров только в SSE2 - загадка. Ну а о 64 битном процессоре как-то даже и не задумывался – тогда в домашних условиях это было ни к чему. Сегодня же есть полная возможность провести этот заброшенный в долгий ящик эксперимент.
Я не буду в деталях описывать алгоритм SHA512. Единственное, что следует знать непосвященному в тонкости читателю, это факт, что все операции в данном алгоритме производятся над 64-битными числами. (Пытливым умам нажимать сюда). Этот алгоритм будет явно выполнятся быстрее именно на 64-х битной архитектуре, поскольку 32-х разрядному процессору необходимо будет проводить все эти вычисления по частям – сначала с первой половиной числа потом со второй. Для 64-разрядного процессора это родная стихия, поэтому победитель в данной гонке заранее определен. Вопрос только насколько быстрее.
Но мы дадим 32 битной архитектуре шанс. Для эксперимента я переписал на ассемблере все основные вычислительные блоки алгоритма с использование инструкций MMX. Это позволило снизить вычислительные издержки за счет 64-битных «костылей» сопроцессора. То есть MMX дает возможность выполнять операции над 64-битными числами не хуже нативной 64-х битной архитектуры (естественно с оговорками).
А на закуску проверим, насколько MMX в 64-х битном режиме может соперничать с нативной 64-битной архитектурой.
Начнем с описания условий проведения тестирования.
Аппаратная часть:
-
Процессор: Phenom II X6 1055Т, на штатной частоте 2.8GHz, TurboCore включен; -
Память: Kingston HyperX 4x2Gb @ 1666MHz 9-9-9-24 2T. -
Остальная конфигурация значения не имеет.
Программная часть:
-
Компилятор: FreePascal 2.6.2 (32 и 64 разрядные версии); -
Windows 8 - 64bit; -
Программа-бенчмарк.
Алгоритм работы программы простой: в оперативной памяти заполняется буфер размером 1 гигабайт. Паттерн - символ $AD. Далее выполняется расчет хеша по алгоритму SHA512.
Сам бенчмарк реализован в следующих версиях:
-
32 битный нативный код; -
32 битный код с MMX; -
64 битный нативный код; -
64 битный код с MMX.
До полной объективности не хватает только выполнения 32-битных тестов под 32-х разрядной ОС, но я на этом заморачиваться не буду.
Итак, бенчмарки отработали. Можно на них полюбоваться :) Я выполнил несколько прогонов и в среднем скорость вычисления плавала в пределах 20 мс, что для данного эксперимента некритично.

Результаты тестирования:
Архитектура |
32 бита |
64 бита |
32 бита + MMX |
64 бита + MMX |
Время выполнения, мс |
32870 |
10873 |
25272 |
15928 |
64-х битная архитектура на оптимальном для нее алгоритме работает почти в 3 раза быстрее, чем 32-х битная. Впечатляет!
Оптимизация MMX дает 32-х битной архитектуре 30% прироста – неплохо! Но преимущества 64-битного процессора очевидны.
Что касается MMX на 64 битном процессоре – здесь наоборот падение на те же 30%. Вычисления 64-х разрядных чисел силами MMX на 64-х битном процессоре явно нелогично. Видимо MMX в режиме 64-бит остался как атавизм или дань совместимости. Но оставим это на совесть архитекторам :)
Итоги в рамках данного эксперимента получились предсказуемыми, но тем не менее интересные.
В заключение хотелось бы только отметить, что в те времена, когда шли дебаты о целесообразности 64-х битной архитектуры, один из аргументов в пользу 64-х бит был в эффективном ускорении криптографических алгоритмов (от которых обывателю ни холодно, ни жарко :). Так что данный факт можно считать практически подтвержденным.
P.S. Если кому интересно прогнать эти тесты на своей машине – пишите в личку, дам ссылку на архивы. В паблик не выкладываю, т.к. не хочется писать всяческие дисклаймеры. Да еще и в нагрузку Avast на exe-шники заругался. Так что не буду пугать публику :)
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают