В распоряжении энтузиаста оказались серверные процессоры "Эльбрус", которые он использовал для теста, сравнивая производительность этих чипов с распространенными моделями Intel и AMD.

Проверка для "Эльбрусов"

В Сети появились результаты частного сравнительного исследования производительности отечественных процессоров "Эльбрус-8C". Выводы эксперта под ником Seti уже некоторое время размещались на интернет-форумах. 27 февраля 2020 г. их на своем сайте опубликовал Максим Горшенин, сотрудник МЦСТ - компании, занимающейся разработкой упомянутых чипов.

"Эльбрус-8C" представляет собой восьмиядерный центральный процессор серверного класса. Заявленная тактовая частота - до 1300 МГц. Чип спроектирован и изготовлен по технологическим нормам 28 нм. Его архитектура позволяет выполнять до 25 операций за один такт в каждом ядре - 250 млрд операций с плавающей запятой в секунду.

Автор исследования отмечает, что ему удалось оценить производительность не косвенным, а прямым методом. "И это очень интересно, - полагает он. - В том числе и потому что очень большое число прикладных задач из коммерческого сектора, связанных с базами данных, web-серверамии т. п. в основном выполняют операции не с плавающей точкой (хотя и их бывает немало), а с целыми числами".

Для исследования были использованы ресурсы тематического проекта RakeSearch Карельского научного центра Российской академии наук.

В сравнении с грандами

Сперва автор исследовал однопоточную производительность. При этом он признает, что сама по себе она мало что значит, но позволяет сделать некоторые выводы.

"Что мы видим, - говорит он. - С одной стороны, скорость вычислений "на одном потоке" в "Эльбрус-8C" проигрывает современным десктопным процессорам (они отмечены зеленым цветом) в два-три раза, в некоторых случаях - до четырех. Однако при сравнении с серверными процессорами (выделены синим цветом), разрыв уменьшается до полутора-двух раз, так как их частоты значительно ниже. Но в них - больше ядер и потоков. А в "Эльбрусе" - частота еще ниже - всего 1,3 ГГц, и если мы это учтем, то увидим, что производительность на такт у него как минимум не хуже, чем у лучших десктопных и серверных процессоров".

Далее автор переходит к рассмотрении валовой производительности. В квадратных скобках после модели процессора указано число потоков, опознанных BOINC-клиентом. Комментируя диаграмму, специалист поясняет, что мы здесь имеем дело не с отдельно взятыми чипами, а с системами на их основе. "В случае с десктопными процессорами (также отмечены зеленым) в системе может быть только 1 CPU, - сообщает автор. - В случае серверных систем на основе Xeon E5 - до двух CPU. А вот в случае с "Эльбрус-8С" в сервер можно поставить и четыре процессора. И это существенно уменьшает отставание в ситуации, когда у того же Xeon E5-2683 v3 на один сокет приходится 14 ядер (и 28 потоков), а у "Эльбруса" - восемь. Двусокетной машине с 28 ядрами уже сейчас можно сопоставить машину на "Эльбрусе" с 32". Отметим, что IntelXeon E5-2683 v3 был выпущен в 2014 г.

 

 

Автор полагает, что из диаграммы ясно видно, что существующие модели не смогут конкурировать с десктопными системами ни по производительности ни, скорее всего, по цене - в этом нет никакой интриги. "А вот в серверном сегменте ситуация куда интереснее, - добавляет он. - Система, аналогичная серверу с двумя Xeon E5-2683 v3 будет стоить где-то $10-12 тыс., и возможно, что в отдельных секторах этого рынка "Эльбрусы" могут составить конкуренцию уже сейчас. В случае же, реализации планов по наращиванию числа ядер (16 и 32) и частот, ситуация может стать еще лучше".

Важное дополнение

Автор добавляет к диаграммам пояснения про параллельность внутри потока. "Если мы посмотрим на любую программу, то скорее всего увидим, что даже в "исключительно однопоточном" в силу алгоритма коде далеко не все операции (или строки кода) процессор обязан выполнять строго последовательно, - пишет он. - Например, в одной из двух основных по времени работы функций в расчетном модуле R10 есть вот такие строчки:

...

rowId = path[cellId][0];

columnId = path[cellId][1];

isGet = 0;

cellValue = Square::Empty;

freeValuesMask = (1u

freeValuesMask &= flagsColumns[columnId] & flagsRows[rowId] & flagsCellsHistory[rowId][columnId];

...

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

То есть, в рамках нашего алгоритма есть возможность распараллеливания на уровне отдельных инструкций, продолжает эксперт. Но, в тоже время, число подобных действий невелико, в пределах пяти-десяти, что, скорее всего, позволяет неплохо задействовать эти возможности в современных процессорах AMD и Intel, которые могут выполнять как раз где-то около пяти-восьми инструкций одновременно, но лишь частично задействуют возможность "Эльбрус-8C" в котором число одновременно выполняемых инструкций может достигать 25! А это значит, что в задачах с более высокой степенью "внутреннего параллелизма" соотношение может изменяться в пользу "Эльбрус-8C" до трех-пяти раз и, даже системы, существующие сейчас, в ряде задач могут выходить в лидеры и по однопоточной производительности, и по валовой производительности CPU, и по валовой производительности системы. Результат в RakeSearch, по сути - это результат в самых неподходящих условиях. И это делает данные результаты еще интереснее".



(https://cnews.ru/news/top...)