История появления и тесты отечественной архитектуры процессоров «Эльбрус»

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Рассуждения | Платформа ПК

Отечественный процессор «Эльбрус» до недавнего времени был насмешкой в кругах пользователей. Однако новые виды процессоров удивляют своей производительностью всё сильнее и сильнее. Проблемы процесса глобализации, история появления архитектуры процессоров Эльбрус, обзор его характеристик и тесты — всё это мы обсудим в данной статье. 

Проблемы процесса глобализации

Сейчас мир переживает глобализацию.

Глобализация касается следующих сфер:

  1. Финансовые;
  2. политические;
  3. культурная интеграция и стандартизация;
  4. сфера вычислительной техники и связи

Глобализация обладает плюсами:

  1. Компания ответственно управляет качеством и культурой производства с полным циклом замкнутого цикла.
  2. В некоторых компаниях есть возможность создавать ПО, которое будет полностью соответствовать стандартам производителя, что позволяет упростить вопросы совместимости и поддержки ПО.
  3. Большие объемы производства, в результате чего снижена стоимость и цена на продукцию потребителям.

Глобализация обладает недостатками:

  1. Угрозой национальной безопасности из-за отсутствия доступа к компонентам и технологиям, которые применялись в военных и государственных секторах;
  2. Применение санкций на крупные фирмы по политическим причинам;
  3. Задержки поставок и рост цен на продукцию;
  4. Недостаток высококвалифицированных и научных сотрудников. 

Все эти проблемы решаются с помощью создания и реализации внутренних разработок, как это было с ЭВМ Эльбрус.

Какими были ЭВМ Эльбрус

Эльбрус называют архитектуру микропроцессоров и созданные на них ЭВМ.

В 1973 году на территории СССР началась разработка ЭВМ Эльбрус академиком В.С. Бурцевым.

Всеволод Сергеевич Бурцев

В 1980 году была создана ЭВМ Эльбрус-1. В Эльбрус-1 было 10 ядер со скоростью 12 млн. IOPS, ОЗУ 64 Мбайт.

Суперкомпьютер Эльбрус-1

В 1985 году была создана ЭВМ Эльбрус-2. Эльбрус-2 имел также 10 ядер, но с производительностью 125 млн IOPS, ОЗУ 144 Мбайт.

Суперкомпьютер Эльбрус-2

Небольшое дополнение про процессоры в ЭВМ Эльбрус-1 и Эльбрус-2

У "старых" Эльбрус-1 и Эльбрус-2 были процессоры в виде шкафов. 

ЭВМ "Эльбрус-1" и "Эльбрус-2" нашли свое применение в радиолокационных станциях, ядерными центрами, а также в центре управления космическими полетами.

В третьей ЭВМ Эльбрус-3, в которой планировалось увеличение ядер до 16 и улучшение других характеристик, из-за распада СССР, так и не увидел свет.

Вынужденное сотрудничество с Американским партнером

В 1992 году на основе прежнего высококвалифицированного персонала была создана ТОО "МЦСТ", которое в настоящее время называется АО "МЦСТ".

МЦСТ переводится так: Московский Центр Sparc Технологий.

До 2007 года они делали следующие ЭВМ на архитектуре Sparc:

  1. МЦСТ-R100;
  2. МЦСТ-R150;
  3. МЦСТ-R500;
  4. МЦСТ-R500S.

Благодаря сотрудничеству с 1992 - 2007 гг компания МЦСТ дожила до наших дней, научилась современному процессоростроению, дополнила свой и так огромный опыт в программной части.

При этом МЦСТ не забыли архитектуру Эльбрус и разработки на их основе.

Современное развитие архитектуры Эльбрус

В 2008 году у МЦСТ  появляется процессор "Эльбрус", который является прямым наследником Эльбрус-1 и Эльбрус-2 со следующими характеристиками: 

Технологический процесс 130 НМ
Тактовая частота 300 МГц
Количество ядер 1
Пиковая производительность 2,4 Gflops в режиме 64 бит
Кэш-память первого уровня (L1) 64Кб банные + 64 Кб команды
Кэш-память второго уровня (L2) 256 Кб
Размеры кристалла 189 мм2
Количество транзисторов 75,8 млн
Мощность 6 Вт

Многие могут задать следующие вопросы:

Что в этих процессорах "Эльбрус" специфичного?

Чем они отличаются от других процессоров представленных на рынке? 

  1. Процессоры Эльбрус из своих архитектурных особенностей традиционно не имеет вирусов и уязвимостей, как например Intel с AMD со своими Meltdown и Spectre;
  2. Система команд процессора Эльбрус имеет много общего с системой команд ЭВМ Эльбрус. Такой тип команд называется "широким командным словом" или VLIW. Идея, которая стоит за микропроцессором Эльбрус с его широким командным словом – это по возможности упростить устройство аппаратуры и перенести большую часть сложности построения всего вычислительного процессора в компилятор. Поэтому в Эльбрусах нет предсказателя переходов, нет внеочередного исполнения команд, следовательно процессор исполняет код как есть.
  3. Если программа написана в родном для архитектуры Эльбрус режиме и использует ее преимущества, то процессоры Эльбрус могут показать отличную производительность

  Характеристики процессоров архитектуры "Эльбрус" выглядят следующим образом:

Процессор Эльбрус-4С Эльбрус-8С (Архитектура Эльбрус 4 поколения или e2k-V4) Эльбрус-8СВ (актуальный процессор на сегодня, архитектура Эльбрус 5 поколения или e2k-V5) Эльбрус-16С (черновой вариант с ошибками в работе, архитектура Эльбрус 6 поколения или e2k-V6)
Технологический процесс 65 нм 28 нм 28 нм 16 нм
Год выпуска 2014 2016 2020 Неизвестно, но говорят в конце 2022 года
Тактовая частота 800 МГц 1000 - 1300 МГц 1500 МГц Присутствует аналог турбо-буста от Intel и AMD. Частота изменяется от 400 МГц до 2000 МГц. Для управления частотой было встроено RISC-V ядро
Количество ядер 4 8 8 16
Количество операций за один такт на одном ядре (IPC) 23 25 50 50
Пиковая производительность в режиме 64 бит 25 Gflops 125 Gflops 288 Gflops 768 Gflops
Кэш-память первого уровня (L1) 64 Кб данные + 128 Кб команды 64 Кб данные + 128 Кб команды 64 Кб данные + 128 Кб команды 64 Кб данные + 128 Кб команды
Кэш-память второго уровня (L2) 8 Мб 4Мб 4Мб 16Мб
Кэш-память третьего уровня (L3) - 16 Мб 16 Мб 32 Мб с 60 битыми линиями кэша
Контроллер памяти 3 канала DDR3 1600 MHz 4 канала DDR3 1600 MHz 4 канала DDR4 2400 MHz 8 каналов DDR4 3200 MHz
Площадь кристалла 380 мм2 321 мм2 350 мм2
Потребляемая мощность 45 Вт 80 Вт 90 Вт 110 Вт
Количество транзисторов 986 млн 2,73 млрд 3,5 млрд 12 млрд

Вычислительная производительность процессора Эльбрус 8СВ превосходит производительность первого микропроцессора Эльбрус более чем в 300 раз.

Что нового привнесла архитектура e2K V6 (архитектура эльбрус 6 поколения) по сравнению с архитектурой e2k V4 (архитектура Эльбрус 4 поколения). Эльбрус 16С против Эльбрус 8С:

  1. поддержка 8 каналов DDR4 3200 MHz;
  2. система на кристалле (не имеет КПИ);
  3. аппаратная поддержка полной виртуализации в нативе;
  4. полная поддержка виртуализации в кодах x86 (это должно помочь в бинарной трансляции);
  5. дополнительное улучшение работы с невыровненными данными;
  6. SIMD 128 (которые появились в Эльбрус 8СВ);
  7. поддержка инструментирования кода для динамической компиляции (это должно помочь как для нативного кода, для и для бинарной трансляции);
  8. поддержка PCI-Express 3.0 X16/32 (до 60 Гб/с). Можно делать SLI/ Crossfire;
  9. появился аналог турбо-буста. Минимальная тактовая частота 400 МГц, максимальная 2000 МГц.

Что разрабатывается в России?

  1. система команд;
  2. логика ядер без всяких там лицензий. То есть с ARM, MIPS, x86 и прочими другими архитектурами Эльбрус не имеет ничего общего;
  3. топология микросхем;
  4. кэш-память;
  5. контроллер памяти;
  6. периферийные контроллеры, которые обеспечивают работу каналов ввода-вывода;
  7. 2D видеоядро, которое служит, чтобы выводить картинку на монитор;
  8. бинарный транслятор Lintel (при этом без нарушений патентов Intel и AMD. На это спсобен не каждый. Это настоящий подвиг);
  9. операционные системы: Astra Linux, ALT Linux, Эльбрус-OS (возможно, есть еще какие нибудь).

Компания МЦСТ производит материнские платы на базе своих процессоров, так и готовые компьютеры и специальные вычислительные комплексы "под ключ".

Есть то, что покупается за рубежом

  1. USB 3.0;
  2. 3D видеоядро + декодирование видео.

Где применяются микропроцессоры Эльбрус?

Успешные проекты на базе СВТ Эльбрус

  1. ФГБУ НИИ Восход: ЦОД для ГИС "МИР" для обработки паспортно-визитовых документов нового поколения (ПВДНП) с программной инфраструктурой и сервисом, 24х7.
  2. Банк России: прототипы Резервного решения платежной системы, транспортного шлюза, прототип цетра обмена сообщениями, системы передачи финансовых сообщений
  3. МВД России: Серверы Эльбрус для ЦАФАП и для дактилоскопического анализа
  4. Россети: Применение для цифровой подстанции (РЗА) ("Борская" и "Семеновская")
  5. РЖД: Использование ВК Эльбрус для управления стрелочным хозяйством. Подготовка к использованию ВК Эльбрус как тонких клиентов
  6. ПФР России: Использование СУБД Postgre SQL в продукционном контуре.
  7. Применяются в моноблоках, ноутбуках, планшетах, системах хранения данных и так далее.

Часть 4. Тесты, тесты, тесты, а также проблемы и нюансы некоторых.

И на этой прекрасной ноте нужно переходить к тестам. Но не так быстро, потому что все не так просто. Обо всем по порядку.

Нюансы тестирования

Процессор Эльбрус 16С на данным является инженерным образцом (по простому – это черновой вариант Эльбрус-16С) с большим количеством ошибок в работе.

Ошибки следующие:

  1. кэш-память второго и третьего уровней в ошибках. Вместо заявленных 48 МБ у L2 и L3, там всего 32 Мб, остальное в ошибках;
  2. контроллер памяти работает некорректно. Вместо заявленных DDR4 3200, там всего DDR4 2400;
  3. проблемы c PCI-Express 3.0 при использовании внешних видеокарт;
  4. сама материнская плата имеет некоторые нюансы. Скорее всего МЦСТ придется менять схемотехнику материнской платы перед заменой процессора;
  5. Сам бинарный транслятор Lintel очень плохо работал с Эльбрус 16С. Причем непонятно - это баги самого бинарного транслятора Lintel, либо так влияют аппаратные проблемы в Эльбрус 16С. Проблемы проявляются следующим образом: либо постоянные вылеты при малейшей нагрузке, либо Lintel зависнет полностью. Если Lintel завис полностью, то спасает только перезагрузка через специальную кнопку. Баг-репорты со всеми симптомами были отправлены в компанию МЦСТ.

Небольшие дополнения про ошибки:

  1. проблемы с PCI Express 3.0 были исправлены в ядре 5.4-3х
  2. по поводу кэш-памяти: кэша заявлено 48M = 16M L2 + 32M L3. 60 битых линий у кэш-памяти 3 уровня (L3)
  3. Насчет контроллера памяти: нужно тщательно выбирать планки памяти. Вот таблица:
Список проверенных модулей ОЗУ DDR4

Это я назвал минимальный список проблем чернового инженерника. Возможно, там проблем еще больше.

Следующие программные нюансы характерные как для Эльбрус 8С, Эльбрус 8СВ, так и для Эльбрус 16С

  1. Также стоит отметить, что для тестов Эльбрус 16С использовались старые билды игр 2020 года, сделанные для Эльбрус 8С, в которых имеются определенные недочеты. Например, из-за ошибки в старой версии компилятора Эльбруса могут случаться вылеты и падение производительности.
  2. Помните я говорил, что у Эльбрусов нет предсказателя переходов и внеочередного исполнения команд. Так как использовались старые билды игр для Эльбрус 8С, следовательно на Эльбрус 16С нативный код игр исполняется как на Эльбрус 8С, только с частотой 2 GHz и 16 ядрами. То есть, новшества архитектуре Эльбрус 6 поколения не учитываются. Это к слову о том, что у Эльбрусов нету обратной совместимости. Как видно, она есть. Это относится к нестабильному в работе Lintel для 16С. Без должной оптимизации, Эльбрус 16С работает не в полную силу.
  3. Стоит отметить старый графический стек, старое ядро Linux 5.4, старый компилятор шейдеров LLVM. Если обновить графический стек, ядро Linux, LLVM заменить на быстрый ACO, обновить компилятор, билды программ и игр, то результат будет еще лучше. Это касается как синтетических (приближенных к реальности) тестов, так и игровых тестов. Прирост к скорости получит как Эльбрус 8С, 8СВ, так Эльбрус 16С.

Небольшие дополнения про драйвер Mesa и ACO:

В ALT Linux присутствует Mesa 20.3.5 с ACO 

 Кстати да, видеокарты от AMD запускаются в нативном режиме с Эльбрусами без "Б". Камень в огород NVIDIA.

Теперь к синтетическим тестам

Пришлось очень много порыться в интернетах, чтобы найти более менее адекватные тесты процессоров Эльбрус. 

Выражается благодарность: 

  1. EntityFX за сравнительные тесты Эльбрус 8С, 8СВ, инженерного 16С;
  2. тем, кто участвовал в конференции Elbrus Tech Day
  3. Elbrus PC Play за игровые тесты как в бинарной трансляции, так и в нативном исполнении

Сравнение буду проводить с Ryzen 7 4800H @ 1700 Мгц (как в играх, так и в некоторой синтетике). Когда выйдет Эльбрус 32С и выше, то такую поблажку делать не буду.

  • GeekBench 5 (RTC – Эмуляция X86)
Эльбрус 8С (Эмулятор) Эльбрус 8СВ (эмулятор) Эльбрус 16С (инженерник с ошибками в работе) (эмулятор) I7 2600 (Native) Ryzen 7 4800H @ 1700 MHz (мой рабочий ноутбук) (Native) I5 2320 (NATIVE) Phenom II X3 720 (NATIVE) Phenom II X4 960T (NATIVE) Phenom II X6 1100T (NATIVE) FX 8150 (NATIVE) FX 8350 (NATIVE) Xeon X3440 (NATIVE) Xeon E5645 (NATIVE) Xeon X5650 (NATIVE) Ryzen 3 1300X (NATIVE) I5 4590 (NATIVE) I5 4400 (NATIVE) I3 6100 (NATIVE) I3 7350K @ 4200 MHz (NATIVE)
Single: 140 Single: 159 Single: 209 Single:  720 Single: 509 Single: 632 Single: 377 Single: 396 Single: 517 Single: 511 Single: 566 Single: 452 Single: 463 Single: 503 Single: 886 Single: 867 Single: 777  Single: 888 Single: 1202
Multi: 937 Multi: 1100 Multi: 2821 Multi: 2845 Multi: 3922 Multi: 2041 Multi: 981 Multi: 1270 Multi: 2510 Multi: 2391 Multi: 2777 Multi: 1795 Multi: 2924 Multi: 3062 Multi: 2869 Multi: 2800 Multi: 2485 Multi: 1949 Multi: 2670
  • Пакет Blender (Native, не до конца оптимизирован под Эльбрусы). В качестве сцены была выбрана сцена с процессором Ryzen
Эльбрус 8С 2 мин 52 с
Эльбрус 8СВ 2 мин 32с
I7 2600 1 мин 20с
Эльбрус 16С 1 мин 08 с
Ryzen 7 4800H @ 1700 MHz (на всех потоках) 1 мин 02 с
  • Результаты замера производительности нейросетевой архитектуры Unet для решения задач сегментации на Эльбрус 4С, Эльбрус 8С, Эльбрус 8СВ, AMD Ryzen Threadripper 3970X

Unet (вход 256 на 256). Замеры для одного ядра. (NATIVE)

Эльбрус 4С 4,45 с
Эльбрус 8С 2,45 с
Эльбрус 8СВ 0,81 с
Ryzen Threadripper (до 4500 МГц) 0,61 с
  • Производительность SoQoL (Native)

Дальнейший рост показателей блокируется пропускной способностью HDD

Сценарий:

TPC-C от HammerDB

200000 транзакций в минуту

Тест системы хранения в памяти:

- Эльбрус 8С: 2120000 операций в секунду

- Intel Xeon E5-2630 V4: 2757000 операций в секунду

В пересчете операций за один такт – Эльбрус эффективнее интела в 1,5 раза

Скорее всего, очень сильно влияет память DDR3 1600 (4 канала) одноранк у Эльбруса, а у Intel DDR4 2400.

Многие  скажут: "так разгони". Только контроллер памяти Эльбруса 8С по другому жить не умеет. DDR3 1600 4 канала и точка. 

  • Производительность в сверточных сетях на процессоре Эльбрус 8С. Внимательными будьте на дорогах. Через камеры следит Эльбрус! (NATIVE)

Пример умножения матриц на 8 ядрах процессора Эльбрус 8С

Платформа ГосНИИАС Библиотека EML (МЦСТ)
1024x1024x1024 67,5% 53,9%
2048x2048x2048 80,25% 68,25%
4016x4016x4016 82,25% 61,37%

С помощью детального изучения микроархитектуры Эльбрус и учета специфики сверточных нейронных сетей удалось реализовать функции, по своей эффективности не уступающие функциям, реализованным МЦСТ, или даже превосходящие.

          Такой уровень результатов позволяет ГосНИИАС гарантировать большую скорость работы сверточных нейронных сетей на "Эльбрусах"

  • Результаты тестов системы хранения данных (СХД) Аэродиск Восток 2 Э12 (Эльбрус 8С, ядро 5.4). (NATIVE)
100_read_4k_sequential (Эльбрус 8С) 100_write_4k_sequential (Эльбрус 8С) 100_read_4k_sequential (Intel Xeon E5-2603 V4) 100_write_4k_sequential (Intel Xeon E5-2603 V4)
IOPS: 1416034 IOPS: 703596 IOPS: 761000 IOPS: 443000
Latency (msec): 11,5 ms Latency (msec): 23,2 ms Latency: 4,6 ms Latency: 5,2 ms
Утилизация CPU: 69% Утилизация CPU: 71% Утилизация CPU: 68% Утилизация CPU: 74%
100_read_4k_random (Эльбрус 8С) 100_write_4k_random (Эльбрус 8С) 100_read_4k_random (Intel Xeon E5-2603 V4) 100_write_4k_random (Intel Xeon E5-2603 V4)
IOPS: 118302 IOPS: 84154 IOPS: 201000 IOPS: 87000
Latency (msec): 8,5 ms Latency (msec): 3 ms Latency: 1,2 ms Latency: 3 ms 
Утилизация CPU: 88% Утилизация CPU: 93% Утилизация CPU: 65% Утилизация CPU: 72%
100_read_128k_sequential (Эльбрус 8С) 100_write_128k_sequential (Эльбрус 8С) 100_read_128k_sequential (Intel Xeon E5-2603 V4) 100_write_128k_sequential (Intel Xeon E5-2603 V4)
BW/MB/s: 5764 BW/MB/s: 2713 BW/MB/s: 2913 BW/MB/s: 1930
Latency: 0,3 ms Latency: 11,3 ms Latency: 5,1 ms Latency: 6,5 ms
Утилизация CPU: 54% Утилизация CPU: 74% Утилизация CPU:79% Утилизация CPU: 88%

В тестирование последовательной нагрузки с большими блоками обе СХД показали сравнимые результаты, однако задержки системы на «Эльбрусах» оказались в десять (на порядок) раз меньше, чем у аналога на процессорах Intel (0,4/0,5 мс против 5,1/6,5 мс, соответственно), а есть сценарии, где Intel быстрее.

Скорее всего, очень сильно влияет память DDR3 1600 (4 канала) одноранк у Эльбруса, а у Intel DDR4 2400. 

Многие скажут: "так разгони". Только контроллер памяти Эльбруса 8С по другому жить не умеет. DDR3 1600 4 канала и точка. 

  • CPU MinerD (NATIVE, но не до конца оптимизировано под Эльбрус)

Первый сценарий: ./minerd --benchmark -a sha256d

Эльбрус 8СВ Эльбрус 16С Core i5-2500K
thread 7: 34198012 hashes, 6840 khash/s thread 7: 44098544 hashes, 8820 khash/s thread 0: 26798032 hashes, 5307 khash/s
Total: 54714 khash/s Total: 141104 khash/s Total: 21226 khash/s

Второй сценарий: ./minerd --benchmark -a scrypt

Эльбрус 8СВ  Core i5-6500 3.20GHz: Эльбрус 16C (оптимизирован под e2k-v5) Core i7-9700K
thread 0: 4096 hashes, 8.50 khash/s thread: 19.54 khash/s thread 0: 4096 hashes, 11.52 khash/s thread 7: 131280 hashes, 26.26 khash/s
Total: 68.24 khash/s total 78.26 khash/s Total: 183.01 khash/s Total: 211.68 khash/s
  • SuperPI (один поток)
Эльбрус 4С Эльбрус 8С Эльбрус 8СВ Эльбрус 16С Ryzen 7 4800H @ 1700 MHz Core i7 2600
10,18 с 5,20 с 3,76 с 2, 77 с 2,50 с 1,81 с
  • 7-zip benchmark (NATIVE)
Эльбрус 16С Ryzen 7 4800H @ 1700 MHz Эльбрус 8СВ Эльбрус 8С
Compress: 26039 Compress: 32591 Compress: 9975 Compress: 8736
Decompress: 44040 Decompress: 40056 Decompress: 14353 Decompress: 12994

Нативные игровые тесты. Эльбрус 8С, инженерник с ошибками в работе Эльбрус 16С против Ryzen 7 4800H @ 1700 MHz. Билды 2020 года для Эльбрусов.

Нативных игр будет несколько:

  1. War Thunder
  2. Enlisted
  3. Half-Life 1 (Xash3D)
  4. CRSED F.O.A.D
  5. SuperTuxKart
  6. Return To Castle Wolfenstein

Настройки графики были везде Максимальные, а разрешение 1080 рублей (1920х1080)

Видео-тест. Эльбрус 8С, Эльбрус 16С vs Ryzen 7 4800H @ 1700 MHz. Эльбрус 16С работает не в полную силу. Смотри нюансы тестирования!

P.S для некоторых комментаторов: у меня будет единственная статья про Эльбрусы и она будет дополняться новыми тестами. Лучше бы ответили на следующие вопросы:

  1. что за карта используется в тестах на Эльбрусах в демке War Thunder
  2. как снять лок с Return To Castle Wolfenstein, Quake 3 

Я с радостью дополню тесты!

Нативные тесты показаны (хоть и не все)! Теперь на страже успеваемости будет эмулятор x86-64 приложений Lintel. 

В сравнении производительности эмулятора Lintel будут принимать участие следующие процессоры:

  1.  i5 2320 (Stock) (Native)
  2. Phenom II x3 720 (с CPU/NB 2350, HT 2350, DDR2 626 Dual Rank Dual Channel) (Native)
  3. Ryzen 7 4800H @ 1700 MHz (Native)
  4. Phenom II X4 955
  5. Эльбрус 8С (Эмулятор Lintel 4.2)
  6. Эльбрус 16С (Эмулятор Lintel 4.2). О проблемах чернового инженерника и линтела для 16С смотрите в нюансах тестирования.

Можно было бы приступить к видео-сравнению Эльбруса в эмуляции против нативных Intel, AMD, а потом в выводах сказать мол "Русские опять создали говнопроцессор" (как делают некоторые. Не буду тыкать пальцем), но я так делать не буду!

Нужно пояснить этим некоторым за работу Lintel.

Как работает бинарный компилятор?

В процессе своей работы бинарный компилятор транслирует коды x86/ x86-64 (исходные коды) в функционально эквивалентные им коды процессора семейства Эльбрус (целевые коды), в последствии исполняя их на вычислительной машине.

Существует четыре уровня трансляции:

  1. интерпретатор
  2. шаблонный транслятор
  3. быстрый регионный компилятор
  4. оптимизирующий регионный компилятор

Любой новый код x86/ x86-64 (исполняемый впервые) транслируется интерпретатором.

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

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

Уровни трансляции различаются временем: 

  1. шаблонный транслятор создает не очень качественный код, но делает это очень быстро;
  2. быстрый регионный компилятор по своим характеристикам находится между шаблонным транслятором и оптимизирующим регионным компилятором;
  3. оптимизирующий регионный компилятор хоть и требует значительного времени на проведение трансляции, но на выходе дает код, максимально использующий все преимущества архитектуры Эльбрус.

Для работы бинарного компилятора необходимо наличие минимум одного процессора исполнения, максимально допустимое их количество на единицу меньше общего количества процессорных ядер, которыми располагает вычислительная машина.

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

Количество ядер для трансляции может быть равно одному или двум. Невозможно создать конфигурацию, при которой суммарное количество процессоров трансляции и процессоров исполнения было бы больше общего числа процессорных ядер, которыми располагает вычислительная машина. Так, при увеличении количества исполняющим процессоров до максимального значения, количество процессоров трансляции автоматически становится равным одному. Аналогично, при увеличении количества процессоров трансляции до двух, количество процессоров исполнения автоматически уменьшается на единицу, если оно имело максимальное значение.

Параметр "Установка типа процессора" определяет результат работы команды "cpuid" - при ее исполнении будет "показан" либо процессор Intel, например Core 2 Duo E7400; Intel Xeon, либо процессор семества Эльбрус. Изменение типа процессора может привести к неработоспособности некоторых операционных систем и программ.

После такого разъяснения становится ясно, почему процессоры Эльбрус в эмуляции x86/ x86-64 приложениях имеют ниже производительность, чем у нативных Intel и AMD. Это совсем не удивительно! Кстати да, от Proton и DXVK толку не будет, потому что Эльбрусу нужно и так проходить четыре круга производственного ада, а тут еще пятый круг в лице Proton, DXVK некоторые пытаются добавлять. Ситуация будет еще хуже!

Помимо бинарного транслятора Lintel, двоичный транслятор приложений RTC.

В чем разница между Lintel и RTC?

Бинарный транслятор Lintel похож на запуск виртуальной машины (с той лишь разницей, что транслятор с гостевой системой занимают весь компьютер монопольно), а RTC — на запуск контейнера в изолированном окружении chroot. Если проводить параллели с популярным эмулятором Qemu, то Lintel — это аналог qemu-system-x86_64, а RTC — это qemu-x86_64. Есть еще один аналог от Apple - Rosetta.

RTC, позволяет запускать на компьютере архитектуры Эльбрус под управлением операционной системы «Эльбрус Линукс» (или иной ОС семейства Linux) прикладные программы для Linux в машинных кодах x86 или x86-64 — например, 1С:Предприятие или Oracle Database — без перекомпиляции из исходных текстов.

Трансляция проходит в режиме реального времени, «на лету», с адаптивной многопроходной оптимизацией, что в сочетании с аппаратными средствами поддержки трансляции, заложенными в архитектуру Эльбрус и обеспечивающими низкие накладные расходы, даёт высокую скорость работы гостевых приложений. При этом системные вызовы ядра Linux обрабатываются ядром хозяйской системы, что также снижает накладные расходы по сравнению с запуском целой системы x86 Linux через бинарный транслятор Lintel.

Так как все игровые тесты были проведены именно в Lintel, следовательно его и будем использовать.

Начнем с бенчмарков:

  • Crystal Mark 2004 (В режиме RTC: x86 -> e2k трансляция)
CPU Threads Frequency ALU FPU MEM R (Mb/s) MEM W (Mb/s) Anounced
AMD Phenom II X4 965 (Agena) (NATIVE) 4 3400 MHz 59098 56272 11162 5973 2009
Core i3-4130 (NATIVE) 4 3400 MHz 54296 39163 19450 9269 2013
Elbrus-8C RTC-x86 (эмулятор) 8 1300 MHz 65817 29977 49800 7945 2016
Elbrus-8CB RTC-x86 (эмулятор) 8 1500 MHz 77481 37972 62100 13940 2018
Elbrus-16C RTC-x86 (эмулятор) 16 2000 MHz 207936 68149 118931 12969 2021
Elbrus-12C RTC-x86 (эмулятор) 12 2000 MHz 157496 59063 89785 32781 2022
I7 2600 (NATIVE) 8 3400 MHz 95369 71648 19547 9600 2011
Core i9 9900K (NATIVE) 16 3600 MHz 270445 238256  44618 17900  2018
I5 2320 (NATIVE) 4 3100 MHz 61444 38429 38807 12700 2011
Ryzen 7 4800H @ 1700 MHz 16 1700 MHz 117367 70545 25357 10758 2018
  • CPU-Z - инженерник Эльбрус-16С и бинарный транслятор Lintel 4.2 для Эльбрус 16С
Результаты CPU-Z. Инженерник Эльбрус-16С (эмулятор)
Эльбрус-16С (эмулятор) Core i5 2400 (NATIVE) Ryzen 7 4800H @ 1700 MHz (NATIVE) FX 8350 (NATIVE) Ryzen 5 1500X (NATIVE) I5 3470 (NATIVE) I5 4470 (NATIVE) I5 4690 (NATIVE) I5 4590 (NATIVE) AMD A9 9820 (PlayStation 4 Chip) NATIVE AMD RX-8120 (Xbox One CPU) NATIVE Ryzen 3 1200 (NATIVE) Xeon X5650 (NATIVE) Core i7 870 (NATIVE) Core i7 860 (NATIVE) FX 8150 (NATIVE) Phenom II X6 1100T (NATIVE) Xeon E5 2620 V1 (NATIVE) Xeon E5 2620 V3 (NATIVE) Phenom II X3 720 (NATIVE)
Single: 101 Single: 317 Single: 204 Single: 241 Single: 473 Single: 347 Single: 358 Single: 413 Single: 358 Single: 146 Single: 111 Single: 444 Single: 389 Single: 334 Single: 238 Single: 258 Single: 143  Single:  216 Single: 280    Single: 178
Multi: 1463 Multi: 1263 Multi: 2278 Multi: 1543 Multi: 2526 Multi: 1194 Multi: 1361 Multi: 1622 Multi: 1407 Multi: 1113 Multi: 881 Multi: 1758 Multi: 3038 Multi: 1791 Multi: 1282 Multi: 1672 Multi: 923 Multi: 1674 Multi: 2007 Multi: 352 

Инженерник Эльбрус 16С в бинарном трансляторе Lintel 4.2 (не до конца оптимизированном) превосходит AMD A9 9820 (чип Playstation 4/ Playstation 4 Pro), Phenom II X6 1100T, RX-8120 (Xbox One CPU) и приближается к результатам FX 8350.

Вывод таков: релизный Эльбрус 16С в оптимизированном Lintel должен справляться с графикой, аналогичной в Playstation 4. Производительность должна быть выше! 

На примере DOOM 2016 года покажем производительность инженерного образца Эльбрус 16С в эмуляторе Lintel 4.2 (какие проблемы, смотрите в нюансах тестирования).

Поэтому я покажу на примере GTA V и Cyberpunk 2077 все эти проблемы.

Тестирование инженерника Эльбрус 16С (бинарный транслятор Lintel 4.2 против нативных Phenom II X3 720, Phenom II X4 955, Ryzen 7 4800H)

Да, Эльбрус в Эмуляции проиграл (и многие на этом бы остановились и сказали бы, что Русские создали Говнопроцессор), но не все так просто. Вспоминаем, как работает Lintel и тут нужно не смеяться, а руками разводить в изумлении. Еще раз скажу, что Lintel 4.2 для Эльбрус 16С не был оптимизирован и имеет сбои в работе, как и сам инженерник (какие проблемы, смотрите в нюансах тестирования).

Тем более Lintel эмулирует x86-64 инструкции без всяких там лицензий и без нарушения патентов Intel и AMD (Intel и AMD не продают права еще с 90х).

Какова разница между инженерником Эльбрус 16С и Эльбрусом 8С 

Разница между Эльбрус 16С и Эльбрус 8С в 2 раза

Разница между Эльбрус 16С и Эльбрус 8С в 2 раза

Демонстрация проблем Эльбрус 16С и Lintel 4.2 на примере игры GTA V. Баг репорты отправлены в компанию МЦСТ. Поиграли в пре альфа версию, так сказать:

Список использованной литературы:

  1. Elbrus Tech Day
  2. Elbrus PC Play
  3. Статья про инженерник Эльбрус 16С
  4. Документация Lintel 4.2
  5. История микропроцессоров Эльбрус
  6. Про память на Эльбрусах
Автор не входит в состав редакции iXBT.com (подробнее »)

62 комментария

111582220525245306773@google
Конечно, тактовая частота процессора на сегодняшний день, параметр далеко не главный. Но, тем не менее, производительность напрямую зависит от частоты. И 2 Ггц на сегодняшний день выглядит как-то странно.
121097433@vkontakte
Многие с чего-то начинают. Эльбрус 32С будет с частотой 2500 МГц. + IPC увеличат. Эта инфа была с Elbrus Tech Day. Так что уже потихоньку архитектура Эльбрус входит в крупнокалиберность!
А то, что в Эмуляции процессор Эльбрус проиграет нативному интел — это абсолютная норма!
Да, кстати забыл пояснить, почему Эльбрусы так много стоят.
Тем, кто в России управляет импортозамещением — это импортозамещение по боку.
Этим личностям (не буду тыкать пальцем) лишь бы закупить иностранного железа и наклеить наклейку, якобы разработано в России.
А продвигать внутренние разработки России, делать заводы, привлекать высококвалифицированных специалистов — это никому не уперлось!
Вот поэтому мы не видим Эльбрусы по доступным ценам. Очень жаль!
111582220525245306773@google
С 1991 года всё начинаем-начинаем-начинаем… Ремонтами компьютеров начинал заниматься с 1985 года. Самыми популярными в те годы были Искра 226, ЕС 1840, Искра 1030. И в них половина комплектующих была болгарского производства. А далее уже ничего из производства бывшего Советского Союза не попадалось.
121097433@vkontakte
«Эльбрус-1» и “Эльбрус-2” нашли своё применение в таких проектах:
РЛС “Дон-2Н” – стационарная радиолокационная станция кругового обзора, главный узел ПРО Москвы;
Центр управления космическими полетами;
Ядерный центр Арзамас-16 (ныне закрытый город Саров) – первый в СССР центр ядерных исследований, входит в структуру ГК “Росатом”;
Ядерный центр Челябинск-70 – ныне закрытый город Снежинск в структуре предприятий ГК “Росатом”.
Параллельно выпускались и упрощённые версия МВК – “Эльбрус-1К2” и “Эльбрус-Б”, которые использовались для плавной замены устаревших вычислительных комплексов БЭСМ-6.
Это я минимум назвал!
111582220525245306773@google
А для простого обывателя это нужно? Да, для страны необходимо, споров нет. Но простому человеку всё равно как работает ядерный реактор, паровоз, танк, самолёт… Его интересует техника созданная для его потребления.
121097433@vkontakte
Я скажу так: многие энтузиасты мирятся с ценой и готовы купить компьютер с Эльбрусом, лишь бы начать портировать игры, программы, заняться реверс-инженерингом (как я например). Именно так можно добиться популярности Эльбрусов на данный момент. Инструкции по портированию игр и программ есть в открытом доступе. Нужно только свободное время на изучение! Успехи уже есть!
Этот факт говорит о том, что Эльбрус (даже несмотря на цену) очень даже необычная и интересная платформа.
H
«Тем, кто в России управляет импортозамещением — это импортозамещение по боку.» А почему так? Да потому, что тем, кто в России управляет всем — это побоку. Строить заводы, привлекать высококвалифицированных специалистов сложнее и не так приятно, как гнать сырье за границу, а деньги за него класть в свой карман и тратить в Швейцарии, Франции, Италии…
121097433@vkontakte
Сам же и ответил на свой вопрос!
B
ну так проблема сейчас с тратами в швейцарии, италии и франции. Больше уже особо туда не пускают, как раз тех людей которые занимаются импортозамещением -) и это должно вселять надежду, правда пока непонятно на что.
m
Ну или отдать лицензию на Эльбрус китайским товарищам и уж те наштампуют… и так пониаю TSMC не нужна ведь у КНР SMIC есть. А так вообще Госуларство должно ставить данную отрасль в приоритет, и не ставить у руля проходимцев. Думаю сегодняшняя ситуация способствует ускорению развития Эльбрус inside)
I
Ничего странного, VLIW процессоры имеют более сложную структуру и всегда будут уступать по частотам другим архитектурам на том же техпроцессе. То же самое было и с Itanium. Частоты на одинаковых техпроцессах были в 1.5-2 раза ниже x86/x64. Это одна одна из причин смерти VLIW архитектуры на «западе». Вторая-низкая эффективность использования ресурсов процессора. При очень большой пиковой производительности фактическая получается от так себе до ужасно.
И, кстати, в статье много неточностей. Например, Э-1/2 не имеют никаких «ядер», процессоры в них являются шкафами. И VLIW микропроцессоры Эльбрус совершенно никакого отношения к Э-1/2 не имеют. Ну кроме названия. Далее, про «нет вирусов и уязвимостей» тоже выдумка. Их просто пока никто не делал/не искал. Например из за того что Эльбрусы (как и вся пост советская электроника) являются музейными редкостями.
121097433@vkontakte
В своем родном нативном режиме процессоры Эльбрус покажут отличную производительность!
Простыми словами: затащит Эльбрус или нет, зависит от высококвалифицированного программиста.
Кстати да: Эльбрус в сбере не затащил именно по этой причине, что программист не хотел в нативный режим и предпочел тестировать эмулятор!
По поводу VLIW у интел в те годы: тут тоже нужно учитывать, что частоты были ниже и IPC был тоже низким!
v
лет 5-7 и его бы допилили до уровня современных процессоров intel & amd. а если бы методично развивали с начала 2000х, у россии был бы свой современный процессор и свои заводы для производства.
но, что получилось то получилось.
121097433@vkontakte
Почему Эльбрусы так много стоят.
Тем, кто в России управляет импортозамещением — это импортозамещение по боку.
Этим личностям (не буду тыкать пальцем) лишь бы закупить иностранного железа и наклеить наклейку, якобы разработано в России.
А продвигать внутренние разработки России, делать заводы, привлекать высококвалифицированных специалистов — это никому не уперлось!
Вот поэтому мы не видим Эльбрусы по доступным ценам. Очень жаль!
Y
Это не массовое устройство же, оно и не имеет смысла тогда. Массовые возможны только при невероятном тираже, а это надо или продавать во все страны или быть китайцами с населением в миллиард.
121097433@vkontakte
От части согласен!
А по поводу «не массовое устройство же, оно и не имеет смысла тогда»: если не будет внутренних разработок, то это тоже плохо!
121097433@vkontakte
Не нужно отчаиваться. Нужно о внутренних разработках России говорить и сравнивать
3
лет 5-7

У Эльбруса было гораздо больше, чем эти 5-7 лет, но результата нет.
876193@vkontakte
нет результата? и многие страны могут собственными процессорами похвастать?
3
Примерно с дюжину. А по готовым архитектурам разрабатывают так вообще в каждой второй.
I
Да, где то 25-27 лет. Помню еще году в 95-96 Э-2000 обещал порвать Pentium Pro и Alpha. Результат есть: где то через 10 лет реально порвали Pentium Pro и Alpha тоже.
121097433@vkontakte
Внмание! Специально для некоторых! Если кто-то начнет политический срач, увижу мат, ссылки на всякие сомнительные ссылки — тому сразу же бан! Не нужно тут таких. Проходите мимо! Давайте жить дружно и уважать свою страну!
A
> ссылки на всякие сомнительные ссылки
Залдастанов решил пойти в IT?
121097433@vkontakte
Забавная опечатка вышла!
A
Опечатка — когда напечатал не ту букву, что хотел.
А это — не опечатка, это косноязычие.
121097433@vkontakte
Если это про Эльбрусы, то вы не правы! Процессоры семества Эльбрус — это идеологические наследники ЭВМ Эльбрус-1, Эльбрус-2 и Эльбрус-3.
А вот мои мысли по поводу импортозамещения:
Тем, кто в России управляет импортозамещением — это импортозамещение по боку.
Этим личностям (не буду тыкать пальцем) лишь бы закупить иностранного железа и наклеить наклейку, якобы разработано в России.
А продвигать внутренние разработки России, делать заводы, привлекать высококвалифицированных специалистов — это никому не уперлось!
121097433@vkontakte
СССР развалили и все разработки пошли по одному месту
111582220525245306773@google
Короче критику в россии не любят. Свободы слова нет — сразу в…
Fracta1L
Очень крутая работа, спасибо!
A
Настройки графики были везде Максимальные, а разрешение 1080 рублей

В принципе не дорого)
E
В Эльбрус-1 было 10 ядер

10 ядер <> 10 процессоров.
121097433@vkontakte
статья будет исправляться и дорабатываться!
T
Суперкомпьютер Эльбрус-1

На фото ДВК (по-моему второй). Там вообще стандартный терминальный класс… Это он так по I/O комплектовался?
121097433@vkontakte
Эльбрус-1 и Эльбрус-2 содержали 10 процессоров в виде шкафов. Нужно дописать, как дополнение
t
ДВК там как в том анекдоте. Едет мужик на самокате. Вдруг на тротуар заезжает «Тесла». Мужик не успевает остановиться, рулём самоката задевает разъём зарядки «Теслы». У водителя на экране возникает сообщение: «Обнаружено новое устройство, установить?». Вот ДВК там для того же, в качестве терминала используется. Почему весь ДВК целиком, а не фрязинский терминал отдельно, не знаю. Наверное, чтобы обмениваться через него данными ещё и с дисководом, принтером.
T
Да понятно, там вообще терминальный класс целиком стоит.
Но да, почему в полном составе — вот вопрос.
А электрички кстати, по опыту личной эксплуатации, полное гуано. Только для хипсторов-понторезов, для жизни не подходят.
b
Пробежался по VLIW архитектуре… Специфическая вещь со своими плюсами и минусами. Для управления боевой и прочей ответственной техникой он, похоже, идеален. Как универсальный процессор для бытовых и офисных нужд, по-видимому, будет так себе. В общем, как я понял, всё зависит от возможности оптимизировать софт под данную архитектуру. В специализированных применениях это возможно и его преимущества проявятся.
121097433@vkontakte
Не все так просто!
Будет vliw тащить или нет, зависит от программистов.
Если будут при портировании учитываться новшества поколений архитектуры Эльбрус, то будет все хорошо.
b
Я о том и говорю, что специализированный софт управления чем-либо будет работать идеально, намного предсказуемей, чем на x86.
k
Зависит от способности и желания государства инвестировать в данный проект. И ясное дело что для того чтобы мерить с иностранным надо сначала паритет по технормам сделать.
121097433@vkontakte
Есть те, кто в игры портирует и играет на Эльбрусах. VLIW очень хорошо справляется даже с играми, даже если порт этой самой игры не учитывает новшества новой архитектуры!
v
В чем смысл тестить эмуляцию, получать печальные результаты и говорить «ну это ж эмуляция, надо понимать»?
Запуск GTA 5 на винде под Lintel — явно не то, зачем эти процы исходно пилились.
Про «в Сбере не затащил потому что программист не захотел в нативный и тестил эмулятор»: а есть ли в нативном необходимые SDK и библиотеки? Или теперь нужно переписывать IT инфраструктуру чуть более чем полностью?
Из наблюдаемого: пакетная база исходных дистров (оно в основном на Debian) перенесена не вся, есть отставание по версиям, сборка из ванильных исходников собственными руками не особо вариант — ибо lcc не то же самое, что gcc.
Было бы интереснее запустить под родной для него ОС (Эльбрус ОС или Астра) тесты на c++, java (какая там есть) и python и посмотреть без всяких эмулей на что способен проц, компилятор и поставляемые с ОС рантаймы.
121097433@vkontakte
Нативные тесты будут дополняться в этой статье, но и в эмуляции тоже интересные результаты получились!
v
Если шарите или имеете выход на тех то шарит включите сюда RTC, для статических бинарей и с использованием гостевой системы. Думаю опыт будет интересен тем, кто будет эти эльбрусы к делу приспосабливать.
Потому как некоторых рантаймов нативно нет/или они не той версии/не полны, будет интересно как запустить в нативной e2k ОС x64 бинари и что нас при этом ждет.
121097433@vkontakte
Статью писал как изложение! Как запомнил, так и написал
E
Именно так можно добиться популярности Эльбрусов на данный момент.

а зачем, если эти cpu попросту не производятся?
121097433@vkontakte
Давай вообще ничего делать не будем! Что тогда будет?
Нужно сравнивать и оговаривать!
121097433@vkontakte
Если у кого то не заходит на статью, то не переживайте, все нормально!
121097433@vkontakte
Да никто тебя не заставляет использовать бинарные трансляторы. Используй нативное! Программируй и пополняй ряды энтузиастов!
А по поводу Lintel и RTC скажу следующее: они эмулируют инструкции x86-64 без всяких там лицензий и нарушений патентов.
Пример приведу: сколько ты знаешь фанатских ремейков, которые дошли до релиза?
Их мало!
Большинство получают по шапке «мол нарушение патентов» и так далее.
Тоже самое и про Эльбрус: если бы они использовали лицензии и патенты, тогда МЦСТ получила бы по шапке от Intel с AMD.
А если была бы договоренность (что мало вероятно), то тогда уникальность Эльбрусов сошла бы на нет
121097433@vkontakte
если бы они использовали лицензии и патенты, тогда МЦСТ получила бы по шапке от Intel с AMD.
121097433@vkontakte
Ну, каждому свое! И никто не заставляет использовать бинарные трансляторы!
121097433@vkontakte
А по поводу архитектуры Эльбрус скажу следующее: она развивается с геометрической прогрессией.
МЦСТ могла бы остановиться на Эльбрус 8С и свалить все на программистов, мол они только и виноваты, что 8С не тащит.
Эльбрус 8С содержит архитектуру Эльбрус 4 поколения
Эльбрус 16С имеет архитектуру Эльбрус 6 поколения

Добавить комментарий

Сейчас на главной

Новости

Публикации

Зачем нужен гайколом и как подобный инструмент сделать своими руками

В этом посте затронем тему инструмента, который появился сравнительно недавно и название ему — гайколом.Иногда возникают ситуации, когда сильно затянутую гайку (закипевшую или со...

Как выбрать лежанку для кота: важные моменты

Думаю, для многих не секрет, что кошки любят поспать до 16 часов в день. Это довольно много времени. Кошки любят тихие, безопасные и теплые места. Если серьезно, выбор лежанки не такая уж и простая...

Сетевой фильтр или удлинитель? Обзор модели TFN Power 6

Не всегда сетевые розетки находятся там, где нужны «здесь и сейчас». В таких случаях выручают удлинители, а если они содержат схемы фильтрации помех и защит от перенапряжения, перегрузки по току,...

Ледяные полюса и огненные озера: Ио – мир контрастов под взглядом Juno

Юпитер, исполин нашей Солнечной системы, окружен свитой загадочных спутников. Один из них, Ио, подобен огненному сердцу, бьющемуся в ритме вулканической активности. Недавно космический аппарат...

Обзор ЦАПа Akliam PD5: один из лучших бюджетных ЦАПов

Говоря о направлениях бюджетного звука, я вскользь упомянул, что действительно качественные решения совмещают в себе и техничность, и прекрасную мелодику. Ну, а в качестве примера назвал героя...

Проверил 5 нейросетей для генерации музыки: как звучит нейрогитара и сколько стоит в коммерческих целях?

Говорят, современные нейросети способны на многое — от написания сценариев для фильмов до предсказания биржевых трендов. Но ещё недавно искусственный интеллект считался бездарным и...