Целочисленная производительность процессоров Эльбрус в общедоступном кроссплатформенном тесте, и сравнение их результатов с конкурентами (В качестве таковых взяты глубоко устаревшие процессоры Intel, просто потому, что они есть у меня на столе, и как оказалось — этого хватило с большим запасом).
«В целях природы обуздания,
Чтобы рассеять неученья тьму.
Берем картину мироздания, да!
И тупо смотрим что к чему!»
А. и Б. Стругацкие «Понедельник начинается в субботу». История вторая. Суета сует.
Почему «тупо»? Потому что мне неинтересны (интересны, но не в данном случае) высокоученые тонкости и детали, я как пользователь оцениваю результат целиком. Но дело в том, что авторы и пользователи отечественного микропроцессора Эльбрус старательно избегают тестирования изделия стандартных приложениях и тестах, позволяющих сравнивать их продукцию с конкурентами. Они публикуют либо теоретические предельные значения быстродействия (стеснительно называя это «пиковой производительностью», которой не бывает), либо исследуют сравнительное быстродействие только в некоторых специальных задачах, где из архитектуры VLIW и серверных материнок с нереальным числом каналов памяти можно выжать достойные результаты (в первую очередь, это обработка видеопотоков и изображений, конечно). Но иногда проскакивают и случайно «ушедшие в народ» результаты других тестов. Например, оценка производительности во встроенном тесте кроссплатформенного архиватора 7zip.
Это уже кое-что, потому что архиватор 7zip очень хорошая оценка производительности процессоров, а главное, оценка по 7zip дает неплохое представление о том, что пользователь «ощущает руками». Конечно, пройти мимо я просто не сумел. Сопоставимый кроссплатформенный тест общей производительности для Эльбрусов, надо же! Вцепился и начал копать. Оказалось интересно и поучительно…
Начнем с производительности одного потока 7zip
Итак, что мы тут имеем с гуся? А имеем мы с гуся вот что:
Процессор Эльбрус 4С (в девичестве E2S) имеет по тесту в архиваторе 7zip в нативных кодах и в составе четырехпроцессорного сервера, производительность на одно ядро 749 MIPS (Понятно, что MIPSы, которые считает тест 7zip – это абстрактные попугаи, но это одинаковые попугаи, полученные по одному алгоритму (дающему неплохую оценку производительности комплекса процессор+память) и результаты в которых можно получить, а стало быть, и сравнить на разных платформах), или с учетом использованного в тесте процессора с частотой в 700MHz – примерно 1070 MIPS на гигагерц.
Если же посмотреть на результаты аналогичного теста для одноядерного процессора Эльбрус 1 С+ с ядром нового поколения в компьютере «Эльбрус-101 PC» (аналогичным ядру процессора Эльбрус 8С), то на частоте 985 MHz картина получается следующая: 967 MIPS на частоте 985 MHz соответствует уровню производительности 981 MIPS на гигагерц. Получается даже чуть меньше, чем для процессора предыдущего поколения, но не забудьте о том, что здесь свой вклад вносит интегрированный GPU, отъедающий часть пропускной способности двухканальной DDR3 и небольшой кэш в 2 мегабайта, в то время как ядро процессора предыдущего поколения имело в своем распоряжении во время тестирования (в составе сервера) целых восемь каналов памяти и 8 мегабайт кэша и, соответственно, не простаивало из-за дефицита её пропускной способности.
Именно этим, дефицитом ПСП для тестируемого приложения, и объясняется кажущееся падение удельной производительности нового ядра, оно работает в этих условиях медленнее, чем могло бы. Причем, вклад дефицита ПСП весьма ощутим — около 9% (это довольно оптимистичная оценка, потому что в тесте использовался код оптимизированный именно для старых ядер, таких как у Эльбрус 4С, новый код пострадал бы еще сильнее).
От одиночного ядра процессора Эльбрус 8С с частотой 1300 Mhz, соответственно, после пропорционального пересчета, и понимая что с увеличением количества ядер в восемь раз — располагаемая ПСП увеличилась всего в два раза, четыре канала DDR3 против двух (но, с другой стороны, исчезла нагрузка от интегрированного GPU, да и кэша стало аж 16 мегабайт) следует ожидать ~1400 MIPS на ядро при частоте 1300 MHz. Так ли это? Давайте проверим:
Ну что же… Практически полное совпадение теоретического расчета с результатами практических тестов, с точностью до неучитываемых различий в деталях использованных при тестировании компонентов. Сколько получится, если в работу включатся все 8 ядер? Забегая вперед скажу, что нет, 8х1445=11600 MIPS не получится, потому что доступная пропускная способность памяти останется той же самой, т. е., практическая производительность получится меньше, чем выходит при простом перемножении.
Как оценивать полученный результат? Ну… Работать уже можно, с однопоточной задачей пользователю не будет «мучительно больно за бесцельно прожитые годы»© (я не шучу, кстати), но увы — не более того.
Результат 1445 MIPS на ядро – это, в принципе, неплохо — но только пока не посмотрим на аналогичные тесты на старых процессорах Intel.
Давайте, для начала, посмотрим на древний, как гуано мамонта, Intel Xeon E5450, это у нас архитектура Core2 (помните еще такое?) и никаких сбивающих с толку hyper-threading (потому что многопоточности для Эльбруса не предполагается, это совсем другая концепция (Повышение КПД в Эльбрусах предполагается повышением среднего IPC за счет параллельного исполнения большого количества команд в рамках сверхширокого командного слова, а не за счет исполнения двух потоков поочередно на простаивающих из-за задержек иерархии памяти ресурсов) процессора — так что сравнение будет чистым). Четыре ядра по 3 гигагерца и 12 мегабайт кэша двумя сегментами по шесть (соответственно, в однопоточном тесте 7zip пользуется шестью мегабайтами L2). 820 миллионов транзисторов, встроенного контроллера памяти нет, один поток на ядро — все почти как у Эльбрус 4С (у того, правда, для одного потока доступны 512 килобайт L2 + 8 мегабайт L3, но я не жадный — пускай пользуется).
Прогоним на нем тот же тест на один поток архиватора 7zip. Как видите, одно ядро Core2 у него дает 3860 MIPS, с одной стороны это всего 1287 MIPS на гигагерц, а с другой стороны — это еще с DDR2 во-первых, а во-вторых — три гигагерца для Эльбрусов недостижимо и на 16 нанометрах, не то что на 45. И, как результат: однопоточное приложение на Xeon E5450 отработает в 2,7 раза быстрее, чем на суперсовременном Эльбрус 8С. Помните, про бесцельно прожитые годы?
Что будет, если взять процессор посовременнее? Будет i7-3612QM, который выдал 3283 MIPS на одном потоке (Процессор поддерживает технологию hyper-threading, так что на 4 ядрах может исполнять 8 потоков команд. Разумеется, это не удваивает его производительность, но +70...80% вполне обеспечивает). На гигагерц получается 1563 MIPS, что в два раза выше, чем у Эльбруса. А в целом, с учетом способности даже старенького i7 работать на недостижимых для Эльбрусов частотах и hyper threading — результат «на ядро» получается примерно втрое выше. При этом не забываем, что этот результат достигается всего менее чем одним миллиардом транзисторов и за 25 ватт, включая двухканальный контроллер памяти. Соответственно, в пересчете на транзистор в однопоточном тесте для i7-3612QM мы имеем ~15000 MIPS на миллиард транзисторов (на штатной частоте), а для Эльбрус 8С с его 2,73 миллиардов транзисторов — всего 4234 MIPS на миллиард транзисторов. Итого:
- в сравнении с процессором с архитектурой Core2 по MIPS на гигагерц в однопоточном тесте — ядро процессора Эльбрус 8С на 25% медленнее, чем ядро процессора Core2.
- в сравнении с процессором i7-3612QM по MIPS на гигагерц в однопоточном тесте — Эльбрус 8С хуже в 2,3 раза
Вроде бы и хорошо, процессор почти удельной производительности Core2 (только на частоту) это уже неплохо — но надо помнить, что сравнимая с Core2 производительность на гигагерц достигнута дорогой ценой: в полтора раза большим количеством транзисторов, а сложность ядра не позволила достичь сопоставимой частоты (даже с существенно лучшим техпроцессом, 28 nm против 45 nm) что кончилось вдвое меньшей общей производительностью ядра.
Перейдем, наконец, к главному — к процессорам целиком
Ладно, с однопоточными тестами все понятно. Давайте перейдем к более интересному: какая целочисленная производительность будет у целого процессора, у четырех ядер Эльбрус 4С, у восьми ядер Эльбрус 8С с одной стороны и четырех ядер Xeon E5450 и i7-3612QM (с технологией гипертрединга и без нее) с другой? Сложный вопрос, особенно потому что у меня нет доступа к системам на Эльбрусах. Поэтому для Эльбрусов будем, по-прежнему, опираться на тесты их владельцев.
Проблема в том, что рост производительности с увеличением числа потоков не растет прямо пропорционально числу ядер, поэтому кроме арифметического пересчета нужно учитывать и другие факторы — такие, как доступная ПСП, разделяемые потоками кэши и потери на многопоточность. У меня в тестах для платформы Intel получилось, что до 4 потоков производительность нарастает пропорционально количеству ядер, а потом прирост начинает отставать. (В одном случае было два канала DDR2, а в другом — один канал DDR3, что дает сопоставимую общую производительность). Необходимы реальные замеры и тесты, которые покажут производительность с учетом всех влияющих на нее факторов. Сам я могу протестировать только интеловскую платформу, и вот что у меня получилось:
Предельную скорость на имеющихся под рукой системах Intel удалось получить на Xeon E5450 при 4 потоках, 14192 (Несколько меньше, 11662 MIPS показал i3-3240, двухъядерный процессор с частотой 3,4 GHz и поддержкой технологии hyper-threading. Сравнивая же результаты с достигнутыми i7-3612QM мы, после несложного пересчета на количество ядер и частоты мы видим, что увеличение кэша с 3 до 6 мегабайт (в рамках одного и того же ядра Ivy Bridge, разумеется) повышает удельную производительность на гигагерц и на транзистор в тесте 7zip с настройками по умолчанию примерно на 17%. Память в тестируемом десктопе тоже была одноканальная DDR3, так что тут все аккуратно) MIPS, а на i7-3612QM при 16 потоках, и она составляет ~16800 (Не стоит забывать, что i7-3612QM процессор хотя и новее, чем Xeon E5450 на три поколения, но ноутбучный и имеет, поэтому, частоту в полтора раза меньше, а по размеру кэша он уступает ему вдвое) MIPS.
Про Эльбрус 4С удалось найти результат на «Хабре», из него при 800 MHz выжали 2920 MIPS с четырех ядер, что неплохо согласуется с полученными авторами CNews параметрами теста на одном ядре в четырехпроцессорной системе (частота в тесте CNews ниже, зато в составе сервера доступная потоку в однопоточном тесте ПСП больше, и встречно — в тесте целого процессора одному потоку доступна только ¼ часть восьмимегабайтового кэша). Итог на 17% ниже, чем дал бы простой пересчет от производительности одного потока. Т.е., даже четырехпроцессорный сервер на Эльбрус 4С раза в полтора отстает в целочисленке от одиночного Xeon E5450 (на DDR2, напомню).
Чего ждать, с учетом этого, от Эльбруса 8С? Прикинем на пальцах, ориентируясь на соотношение производительности для Эльбрус 4С при одном и четырех потоках, и экстраполируя имеющиеся результаты пропорционально количеству ядер и росту частоты (2920÷800×1300×2) выходим на величину 9490 MIPS. При этом не забудем, что рост ПСП отстает от роста количества ядер с одной стороны, а с другой — примерно на эти же проценты, что теряются из-за дефицита памяти производительность нового ядра на такт больше, чем у старого, да и кэш в два раза больше. Я думаю, что в итоге будет примерно то на то, плюсы и минусы взаимно компенсируются. Итак, зафиксируем примерную теоретическую оценку для Эльбруса 8С на уровне ~9500 MIPS в тесте 7zip.
Что получится не в теории, а на практике? А на практике вот что (барабанная дробь, нервных просят удалиться):
Ну, как бы «тыдыщ!», на кончике карандаша я практически точно рассчитал параметры целочисленной производительности процессора Эльбрус 8С, исходя только из результатов тестов его предшественников и родственников. Ну что же…
Что означают эти 9519 (С предельно выжатой дорогой памятью другие тестеры намеряли в пике аж 9591, но у меня-то память дешевая и никаких ее предельных настроек, все по умолчанию — поэтому, этот результат я в расчет не беру, извините) попугаев? Работать можно, но вам не очень понравится. У меня в ноуте примерно столько (9255) же было со старым i3-2470M, и это уже раздражало (Он, напомню, двухъядерный с HTT, т. е., около 2200 MIPS доступно для однопоточного приложения) — я не просто так затеял менять процессор. С одной стороны, в целочисленке почти догнали (примерно на треть отстали, ерунда) полуторадесятилетний E5450 и получили около половины производительности i7-3612QM, а с другой… учитывая что мы сравниваем топовый Эльбрус 8С с древним Core2 и со старым (первый квартал 2012 года) ноутбучным процессором, с жестким лимитом по тепловыделению, зажатым на одноканальную память (Верну себе конфигурацию 8+8, память заработает в двухканальном режиме, как положено — и сразу уйду к 18000- 20000 MIPS (проверено, но не заскриншотил вовремя, ну да ладно)), то это такой « частичный успех». Этого хватает для обслуживания ввода/вывода и для более-менее комфортного использования офисных (Предлагаемая же для учебных заведений система с шестью рабочими местами на процессор вызывает у меня легкое недоумение. Т.е., я знаю про разделение времени и все такое, но шесть человек на сундук мертвеца на один Эльбрус[1]8С это жестоко. Разве что 32 гигабайта спасают решение от полного позора. Высокопроизводительные вычисления…? Ну-ну… Я постараюсь добраться до этого дела в следующей статье) приложений, и всё, в общем-то.
Куда в 2020 году можно пристроить такой процессор, как Эльбрус 8С? Честно говоря, я в затруднении. Ноутбуки отпадают сразу — 80 ватт без видео это даже не смешно. Десктопы… Ну, только с горя, за неимением лучшего. У меня вот стоит e5450, но это «в рамках выделенного бюджета»… Серверы? В качестве процессора файлопомойки среднего уровня прокатит, но только если покупателя устроит его энергопотребление (против многократно превосходящего по производительности Intel Atom® Processor C3558, потребляющего примерно 16 ватт) и шифрование по ГОСТ, вместо AES256, что совсем не факт. Серверы базы данных? Ну, в принципе для небольшой конторы и если памяти побольше — то сойдет. Где Эльбрусы хороши, так это в видео- и фотообработке. Собственно, VLIW в какой-то степени можно рассматривать как функциональный аналог SIMD расширений, крайне полезных при обработке изображений, а поддержка со стороны четырех каналов памяти, вместо привычных для этого класса систем двух – позволяет Эльбрусам показывать пристойные результаты в этих задачах.
Что? Да, я помню, сколько они стоят…
Хорошо, а если взять несколько Эльбрусов? Будет лучше?
В принципе, все ожидаемо. Производительность 4х-сокетной системы с 32 ядрами (с частотой, кстати, 1200 MHz) вовсе не 35156 MIPS. На практике получается почти на 15% хуже арифметически расчетного, но это нормально по вышеописанным причинам.
Хорошо это или плохо? Как и с чем сравнить ощущения от работы? Ну как вам сказать… Давайте лучше покажу, что произойдет, если взять хотя бы и старый процессор Intel, но свободный от ноутбучных ограничений по потреблению и не с одним каналом памяти?
Смотрите, что будет на одном шестиядерном Intel Xeon L5640 на базовой частоте, без разгона и без двух потоков на виртуальный процессор…
Как говорил в похожей ситуации т.Швондер: «это какой-то позор»
С 1170 миллионов транзисторов при 60 ваттах потребления, по худшей проектной норме, у одного Интеловского камня получается 32699 MIPS. Это больше, чем дает астрономической цены топовая система на четырех Эльбрусах 8С (32 ядра), которые содержат 4х2730=10290 миллионов транзисторов (в 9,4 раз больше) при суммарном потреблении 4х80=320 ватт (в 5,4 раза больше). Это не просто «убил и закопал», это интеловский старикашка, начального уровня процессор для серверов (ну так и Эльбрус 8С не ноутбучный), буквально, «в особо циничной форме надругался над архитектурой Эльбруса», причем и в целом, и в каждом из параметров отдельно. Учитывая свой опыт я предположу, что при 24 потоках 7zip можно было бы получить еще примерно на 20% больше.
Результат сравнения просто разгромный: четырехпроцессорный суперсервер «Эльбрус 804» в целочисленной производительности уступает одиночному старинному Intel Xeon L5640.
- По производительности на ватт — в 5,7 раза. (и это без учета потребления всей обвязки четырехсокетной материнки под Эльбрус, имейте в виду.)
- По производительности на транзистор — в 9,93(!!!) раза. На порядок, Карл!!!!
- По общей целочисленной производительности — на 6,6%.
А ведь процессор этот, Intel Xeon L5640 выпущен ровно 10 лет назад.
Ладно, не будем травить МЦСТ старыми серверными процессорами. Да, тогда они стоили дороже, чем сегодня на Aliexpress, согласен (хотя я ехидно замечу, что в момент запуска этот процессор предлагался всего за $999, в несколько раз дешевле одиночного Эльбрус-8С) — и конкурировать по цене с б/у техникой бессмысленно, а заниматься обратным сравнительным пересчетом денег с учетом инфляции скучно.
Давайте купим новый процессор, не из самых дорогих. Заведомо исключаем из рассмотрения серверные чудовища, с 16 и более многопоточными ядрами и десятками мегабайт кэшей, нам даже не нужна поддержка многопроцессорности, гоняться четырехпроцессорным Эльбрусом-804 будем с одиночным десктопным процессором среднего ценового диапазона. Ну так, чтобы не делать отечественному серверу слишком больно и обидно.
Идем в магазин покупаем что-нибудь средненькое, слегка устаревшее, но неплохое — ну, скажем, простой шестиядерный AMD Ryzen 5 2600X. И что? «И всё...» (анекдот про мужика и Смерть) ситуация еще смешнее и безнадежнее для Эльбрусов.
Видите? С современными процессорами даже и гоняться бессмысленно: 50 тысяч MIPS (а на практике, при 24 потоках еще больше) – сегодня это уже уровень не серверных, а десктопных процессоров, Ryzen 5 или Intel i7 (даже не Ryzen 9 и Intel i9). Подчеркну: одиночных десктопных процессоров. Серверные же и всякие экстремальные мон ст ры, типа AMD Ryzen Threadripper ушли далеко за 100000 MIPS (некоторые и за 2 5 0000). Про многопроцессорные системы даже начинать не буду, «и так всё ясно!»
Через год-два, когда грядущий Эльбрус 16С на 2000MHz возьмет, наконец, планку в 25000 MIPS в одиночку и 100000 MIPS на четверых (напомню, по оценке 7zip) – нормальный однопроцессорный десктоп будет иметь целочисленную производительность 75000+ MIPS, а недорогие серверы общего назначения к миллиону MIPS подойдут…
Я напомню: такая разгромная разница в производительности нивелирует даже имеющееся абсолютное превосходство Эльбрусов (над десктопными процессорами предыдущего поколения уровня i7-7700, например) в некоторых специфических задачах, типа скоростного распознавания образов (распознавание лиц в системе тотального видеонаблюдения в т.ч.). Эльбрусов просто нужно гораздо больше для обеспечения равного уровня производительности.
И, наконец, подведем итоги
В общем, для архитектуры Эльбрус все не просто плохо, а очень плохо. Давайте я сведу для наглядности все цифры в одну табличку, для удобства и наглядности.
Собственно, тут даже и комментировать нечего. Эльбрусы демонстрируют полностью провальные характеристики по всем параметрам, как по абсолютным показателям (что можно было бы пережить, особенно если бы еще и с отставанием по техпроцессу), так и по их удельным величинам (и вот это уже приговор архитектуре!). Причем, отрыв не какой-нибудь преодолимый или, хотя бы обоснованный тем же техпроцессом, а многократный, даже против процессоров прошлых поколений, которые сделаны по гораздо худшим техпроцессам.
И это мы еще не поговорили о ценах на эту эльбрустику — а поговорить надо. Однопроцессорная АРМ «Эльбрус 801-М» по неофициальным (Официальных цен на изделие, как водится, нет — юрлицам (и только юрлицам) предлагают заказать кота в мешке, цену на которого определят в момент поставки (через полгодика), исходя из ряда факторов) оценкам стоит около четверти миллиона рублей, раз в 20 больше аналогичной по производительности новой (Для общих задач, не связанных со специфической видеообработкой, такую же производительность можно получить от системного блока на том же б/у E5450, ценой в 1000-1500 рублей на Alieрxpress. Системник в сборе (и даже с DDR3) обойдется в пределах 8-10т.р., причем, в основном за новый винчестер. Заплатив еще 2-3 т.р. можно купить хороший видеоадаптер и перенести обработку видео на мощный высокопараллельный GPU) x86-64 машинки. Стоимостью монитора, я думаю, можно пренебречь — даже хороший 23“ монитор укладывается в погрешность оценки. За четверть миллиона, как вы сами понимаете, если не упираться в Эльбрусы — можно получить современную рабочую станцию (или сервер) с производительностью на порядок больше (нижняя оценка), чем у новейшего Эльбруса 8С. Сколько стоит «Эльбрус 804» на четыре камня — я просто боюсь (Цены традиционно не публикуются, а показатели производительности указывают «теоретические пиковые». Ну, я думаю что ценник на это изделие начинается от миллиона, в лучшем случае. Раз в 10-50 дороже, чем за ту же производительность на нормальных платформах) гуглить.
...впрочем, учитывая «основного покупателя», в смысле российские госструктуры — кого там волнует такая ерунда, как цена или непонятная нормальному чиновнику «цена/производительность».
И наплевать, что на практике оказывается, что требуемый уровень производительности в любом случае может быть получен на нормальных процессорах при затратах на порядок меньше, как минимум.
Причем, переплачивать за Эльбрусы придется как при первоначальных закупках оборудования — так и потом, за эксплуатационные расходы, выраженные в оплате юнитов ЦОДов, в стоимости электроэнергии (как для самих процессоров, так и для систем охлаждения), в зарплате лишнему техперсоналу.
Т.е., Эльбрусы наносят финансовый удар по бюджету не только в момент закупок, но и продолжают разорять государство (за свои деньги их никто покупать не будет, при всём прочем — наш бизнес не настолько глуп) каждую секунду своей эксплуатации.
Но никому нет дела до того, что дорого, горячо и медленно, что придется в десятки раз переплатить, «казенные» же деньги, не свои. За казенный счет у нас могут и Эльбрусы купить, тем более что, чем больше букет, тем ниже поцелуи больше сумма закупки — тем выгоднее она для закупщиков. А чтобы вопросов не задавали — «импортозамещение» и упоротая «безопасность».
Честно говоря, всё это вызывает у меня приступ черной меланхолии с нецензурными пароксизмами. Вся опупея с Эльбрусами будет вписана в учебники, как пример самой чудовищной и разорительной для страны упертости в ошибочном технологическом решении. Эльбрусы (на самом деле, сама концепция VLIW, растащенная до безумного (Компания Intel вовсе не просто так ограничилась шириной слова в шесть команд для своей архитектуры IA-64. Не все у них было гладко, но назвать процессоры семейства Itanium медленными никто не может. У них и IPC вполне себе на уровне получилось, и с частотой все нормально. А вот при увеличении ширины свыше этого предела в шесть команд — формировать полные слова получается уже далеко не всегда, что приводит к существенному падению КПД процессора. IPC все еще растет, но появляются простаивающие ФУ, и чем больше накручивается теоретический максимум — тем меньше средний процент заполнения на практике. И, мало того, усложнение схемы ограничивает ему рост частоты. Если же довести ситуацию «бега в ширину» до абсурда, то и получается Эльбрус, с 25(!) командами в слове, неспособный набрать конкурентоспособные частоты и с показанным в статье КПД (здесь - в целочисленных расчетах, впрочем с плавающей точкой ситуация ни разу не лучше)) уровня параллельности) просто эталонно неэффективны в пересчете что на транзистор, что на ватт, что на мегагерц, что на доллар/рубль… Впрочем, у нас все так делается.
Дополнение, полезное для понимания ситуации на рынке
UPDATE: уже после завершения статьи я, для очистки совести, прогнал тест 7zip на своем «младшем» ноуте (Гусары, молчать! Я сам знаю, что Lenovo V110-15AST - слабенькая машинка, но она (в отличие от Эльбруса) очень дешевая. Однако, с приличным 15,6“ экраном и легкая. Что и было главными критериями при покупке: чтобы легко таскать и не слишком жалко утратить. И — да: аппаратная поддержка AES позволяет без ощутимых проблем работать с зашифрованным (LUKS) диском), на процессоре AMD A6-9210 (два ядра по 2,4GHz (2,8 в авторазгоне), 1 MB L2, 1 канал DDR4). В Linux, из под WINE. И знаете что? «Ви таки будете смеяться»…
Получил 3133 MIPS на одном потоке и 5458 MIPS максимально (при четырех потоках). Т.е., в целочисленных вычислениях мой бук на копеечном процессоре почти вдвое опережает даже четырехядерный Эльбрус 4С, а своего ровесника и прямого конкурента, процессор Эльбрус 1С+, что называется: «кроет, как бык овцу», многократно превосходя его не только по MIPS’ам — но и по производительности встроенного видео (с Radeon R4 Эльбрусовскому видеоядру не гоняться, извините), и по энергоэффективности.
Более того, выбирая между рабочими станциями даже на Эльбрус 4С и AMD A6-9210 я бы выбрал второй вариант, как более производительный на большинстве (На задачах, требующих большой пропускной способности памяти и с простой обработкой — Эльбрус 4С, конечно, будет быстрее, просто за счет нескольких каналов памяти и огромного кэша) задач, не только в сложной целочисленной математике. Потому что у AMD A6-9210 есть аппаратная поддержка AES, и отдельный декодер H.265, так что теоретическая высокая эффективность Эльбрусов в задачах шифрования и обработки видео тоже перекрывается с большим запасом, кроме отдельных специфических задач (где, в основном, им помогает большая пропускная способность памяти). Про энергоэффективность (ноутбук на Эльбрус 4С это, простите, несмешной анекдот) и цену я промолчу. Примерный паритет по производительности будет с двухпроцессорной станцией на Эльбрус 4С. Но это покупать вместо копеечного бука на AMD A6-9210, сами понимаете… С горя если только.
Еще одно дополнение, на сей раз ехидное
UPDATE 2: Помните, наверное, такую процессорную компанию, как VIA Technologies? Разработчика, в том числе, и оригинальных x86 процессоров? Их высшим публично известным достижением был VIA C7, который более-менее уверенно конкурировал с младшими моделями Intel на Socket 479, а потом они как-то сошли с публичной сцены. Но несколько лет назад произошло интересное: в 2013 году было основано совместное предприятие Zhaoxin с участием VIA Technologies и Шанхайского городского правительства и… И понеслось (Впрочем, сама VIA Technologies и ее дочерняя компания CenTaur никуда не делись и продолжают выпускать интересные процессоры, только не для универсальных персоналок с серверами, а для специализированных систем обработки данных). Идея у них была совершенно здравая с т.з. минимизации технического риска: у нас есть на руках работоспособное ядро, так давайте сделаем его на новом техпроцессе? Добавим поддержку новых инструкций (AVX и AES) — и затолкаем на кристалл несколько таких ядер. И кэша добавим, сколько поместится. Так и сделали.
И итоге, после нескольких итераций, осенью 2018 года публике были представлены процессоры семейства KaiXian KX-6000, содержащие 4 или 8 вычислительных ядер, 4 или 8 мегабайт кэша и работающие на частоте до 3 гигагерц. Кроме того, в процессор интегрированы контроллер памяти на два канала DDR4, видеоадаптер, а так же контроллер SATA (что очень полезно с т.з. задержек при работе с накопителями SSD).
Насколько хорошо получилось? Ну… Давайте посмотрим на те же самые MIPSы в 7zip:
Прямо скажем, 12122 MIPS это не вот что-то такое астрономическое, но учитывая минимальные затраты на разработку и относительно скромное (около 20 ватт, считая встроенное видео DX11) потребление созданного по 16 nm техпроцессу чипа можно сказать, что это достаточно годное для массового применения решения. Конечно, это не для высокопроизводительных станций, но для ноутбуков всяких, моноблоков, домашних компьютеров «для мультимедиа», для встроенных решений и тому подобного — такого уровня производительности более чем достаточно. Да, конечно это уровень двухъядерного i5 седьмого поколения с hyper-threading, но система на i5 в общем случае будет быстрее, потому что одиночному процессу может быть доступно в 3-4 раза больше MIPS, чем у китайского процессора. С другой стороны, у меня при восьми потоках на старом i7 всего раза в полтора быстрее, т. е., китайцы уже где-то рядом. А с выходом нового KaiXian KX-7000 они меня уже в целочисленных (В плавающей точке им еще долго ничего не светит. Тут с Intel гоняться сложно, надо признать) вычислениях обгонят.
Кстати, есть у Zhaoxin и серверные предложения: сегодня это восьмиядерные KaiSheng KH-30000, на подходе уже KH-40000 на 32 ядра (новой архитектуры). Параметрами их производительности травить МЦСТ мы тоже не будем.
Что из этого следует? Ровно то же самое, что и вышло в предыдущей статье: На самом деле, ЛЮБОЙ подход лучше, чем Эльбрусы. Лицензирование MIPS, постепенное совершенствование старых x86 решений ( остались бы деньги, можно было в начале 2010-х самим с VIA задружиться, но деньги потратили на Эльбрусы) даже на RISC-V сделать хорошо можно. Неважно, куда бежать от эльбрустики, хуже не будет.
Необходимый большой постскриптум: эмуляция как она есть
Напомню, в тестах CNews и у Шигорина все работало в нативных кодах Эльбруса. Что будет, если на «Эльбрус 801-М» накатить Windows, так что процессор будет работать в режиме эмуляции x86? Как обещали разработчики, потери на динамическую трансляцию x86 во внутреннее VLIW представление не превышают 20-30%, т. е., даже если потери взять в 50%, то надо бы ожидать от эмуляции чего-то сопоставимого хотя бы с половинкой от того E5450, что фигурировал в статье? Что-то уровня Core2 Duo E7400? Авотхрен™. Год назад, когда на выставке показали «Эльбрус 801-М» под управлением Windows 8 в режиме динамической трансляции x86 – там сфотографировали оценку производительности Windows. Вы, дамы и господа, пристегнитесь, потому что вот:
Ну, т. е., ожидаемый Core2 Duo E7400 детектед, но на 1200 MHz вместо 2800 Mhz, соответственно производительность...Честно говоря, я даже не припоминаю процессора, который показал бы 2,9 в Windows 8, все от 3,5 начинается, как правило. Причем, дело именно в процессоре, у «Эльбрус 801-М» вполне приличный видеоадаптер AMD R5 и 32 гигабайта памяти, современный жесткий диск (как бы не SSD), так что определяет оценку производительности только сам процессор, в индексе производительности «зачет по последнему», по худшему из компонентов.
Что из этого следует? Из этого следует что, оценка потерь при работе в режиме динамической трансляции очень сильно занижена и составляет не 20-30%, а около 75% общей производительности (и, соответственно, эмуляция обеспечивает всего два потока x86, а еще шесть ядер или простаивают, или заняты трансляцией кода вместо обещанного обратного соотношения).
К сожалению, ввиду непонятного (понятного, конечно) избегания разработчиками стандартных тестов производительности о причинах такого поведения процессора остается только гадать.
NB: Единственное более-менее большое тестирование в широком спектре приложений — это та же самая статья на «Хабре», из которой понятно, что Эльбрус 4С при частоте 800 Mhz несколько уступает практически на всех задачах крохотному двухъядерному Intel Atom 2500 чуть более чем вдвое большей частоты. Собственно, про КПД архитектуры уже все понятно, да?
Представляем вашему вниманию новую статью автора Галопом по вычислительным Европам.