В распоряжении энтузиаста оказались серверные процессоры «Эльбрус», которые он использовал для теста, сравнивая производительность этих чипов с распространенными моделями Intel и AMD.
Проверка для «Эльбрусов»
В Сети появились результаты частного сравнительного исследования производительности отечественных процессоров «Эльбрус-8C». Выводы эксперта под ником Seti уже некоторое время размещались на интернет-форумах. 27 февраля 2020 г. их на своем сайте опубликовал Максим Горшенин, сотрудник МЦСТ — компании, занимающейся разработкой упомянутых чипов.
«Эльбрус-8C» представляет собой восьмиядерный центральный процессор серверного класса. Заявленная тактовая частота — до 1300 МГц. Чип спроектирован и изготовлен по технологическим нормам 28 нм. Его архитектура позволяет выполнять до 25 операций за один такт в каждом ядре — 250 млрд операций с плавающей запятой в секунду.
Автор исследования отмечает, что ему удалось оценить производительность не косвенным, а прямым методом. «И это очень интересно, — полагает он. — В том числе и потому что очень большое число прикладных задач из коммерческого сектора, связанных с базами данных, web-серверамии т. п. в основном выполняют операции не с плавающей точкой (хотя и их бывает немало), а с целыми числами».
Для исследования были использованы ресурсы тематического проекта RakeSearch Карельского научного центра Российской академии наук.
В сравнении с грандами
Сперва автор исследовал однопоточную производительность. При этом он признает, что сама по себе она мало что значит, но позволяет сделать некоторые выводы.
источник: filearchive.cnews.ru
«Что мы видим, — говорит он. — С одной стороны, скорость вычислений «на одном потоке» в «Эльбрус-8C» проигрывает современным десктопным процессорам (они отмечены зеленым цветом) в два-три раза, в некоторых случаях — до четырех. Однако при сравнении с серверными процессорами (выделены синим цветом), разрыв уменьшается до полутора-двух раз, так как их частоты значительно ниже. Но в них — больше ядер и потоков. А в «Эльбрусе» — частота еще ниже — всего 1,3 ГГц, и если мы это учтем, то увидим, что производительность на такт у него как минимум не хуже, чем у лучших десктопных и серверных процессоров».
Далее автор переходит к рассмотрении валовой производительности. В квадратных скобках после модели процессора указано число потоков, опознанных BOINC-клиентом. Комментируя диаграмму, специалист поясняет, что мы здесь имеем дело не с отдельно взятыми чипами, а с системами на их основе. «В случае с десктопными процессорами (также отмечены зеленым) в системе может быть только 1 CPU, — сообщает автор. — В случае серверных систем на основе Xeon E5 — до двух CPU. А вот в случае с «Эльбрус-8С» в сервер можно поставить и четыре процессора. И это существенно уменьшает отставание в ситуации, когда у того же Xeon E5-2683 v3 на один сокет приходится 14 ядер (и 28 потоков), а у «Эльбруса» — восемь. Двусокетной машине с 28 ядрами уже сейчас можно сопоставить машину на «Эльбрусе» с 32». Отметим, что IntelXeon E5-2683 v3 был выпущен в 2014 г.
источник: filearchive.cnews.ru
Автор полагает, что из диаграммы ясно видно, что существующие модели не смогут конкурировать с десктопными системами ни по производительности ни, скорее всего, по цене — в этом нет никакой интриги. «А вот в серверном сегменте ситуация куда интереснее, — добавляет он. — Система, аналогичная серверу с двумя Xeon E5-2683 v3 будет стоить где-то $10-12 тыс., и возможно, что в отдельных секторах этого рынка «Эльбрусы» могут составить конкуренцию уже сейчас. В случае же, реализации планов по наращиванию числа ядер (16 и 32) и частот, ситуация может стать еще лучше».
Важное дополнение
Автор добавляет к диаграммам пояснения про параллельность внутри потока. «Если мы посмотрим на любую программу, то скорее всего увидим, что даже в «исключительно однопоточном» в силу алгоритма коде далеко не все операции (или строки кода) процессор обязан выполнять строго последовательно, — пишет он. — Например, в одной из двух основных по времени работы функций в расчетном модуле R10 есть вот такие строчки:
...
<Начало цикла>
rowId = path[cellId][0];
columnId = path[cellId][1];
isGet = 0;
cellValue = Square::Empty;
freeValuesMask = (1u << Rank) — 1;
freeValuesMask &= flagsColumns[columnId] & flagsRows[rowId] & flagsCellsHistory[rowId][columnId];
...
Первые четыре из этих строк описывают действия, полностью независимые друг от друга. Шестая — зависит от пятой, но, по сути, они могут быть склеены в одну строку, состоящую из нескольких операций, часть из которых также может быть выполнена параллельно».
То есть, в рамках нашего алгоритма есть возможность распараллеливания на уровне отдельных инструкций, продолжает эксперт. Но, в тоже время, число подобных действий невелико, в пределах пяти-десяти, что, скорее всего, позволяет неплохо задействовать эти возможности в современных процессорах AMD и Intel, которые могут выполнять как раз где-то около пяти-восьми инструкций одновременно, но лишь частично задействуют возможность «Эльбрус-8C» в котором число одновременно выполняемых инструкций может достигать 25! А это значит, что в задачах с более высокой степенью «внутреннего параллелизма» соотношение может изменяться в пользу «Эльбрус-8C» до трех-пяти раз и, даже системы, существующие сейчас, в ряде задач могут выходить в лидеры и по однопоточной производительности, и по валовой производительности CPU, и по валовой производительности системы. Результат в RakeSearch, по сути — это результат в самых неподходящих условиях. И это делает данные результаты еще интереснее».