Эльбрус/faq

Материал из ALT Linux Wiki

ЧаВо по Эльбрусу

ликбез

Зачем нужен этот ваш Эльбрус?

A: Эльбрус хорошо решает математические задачи ввиду ряда архитектурных особенностей.

  1. На мат. задачах можно хорошо утилизировать исполняющие устройства при помощи компилятора, т.е. забивка ШК получается очень плотной.
  2. Там, где это возможно, применяется устранение переходов при помощи предикатов, что позволяет не терять лишнего времени на факт перехода.
  3. Для циклов существуют специальные средства аппаратного ускорения. Например, аппаратный счётчик итераций, который не только освобождает одно устройство, но и позволяет генерировать специальные команды работы с памятью.
  4. Асинхронная подкачка данных (APB) -- специальные устройства, позволяющие параллельно с основным потоком исполнения качать данные из памяти, чтобы потом не сидеть на ожидании данных.

Всё это позволяет делать "накрутку" -- специальную версию конвейеризации цикла с аппаратной поддержкой (хотя, разумеется, всё это используется и по отдельности в разных комбинациях).

Соответственно, когда я говорил про то, что ассемблер не предназначен для людей, в том числе я имел ввиду и эти возможности, для использования которых человек не очень подходит. Даже если не брать эти возможности, просто представьте, что у нас есть 32 предикатных регистра, т.е. результат 32 ветвлений можно слить в линейный код и нужно весь этот код раскидать для оптимального исполнения на 6 АЛУ с учётом всех правил планирования. А это сложно сделать даже просто для обычного кода. Разумеется, бывают случаи, когда человек расставит инструкции более оптимально, но это крайне редкий случай, хотя на практике встречается.

A: Вообще разговор не то чтобы #флуд, но такой... Perestroyechniy. "Давайте продавать нефть, а остальное купим! Смотрите, у них машины, одежда, сникерсы лучше наших".

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

Вопрос "зачем нам нужен Эльбрус" можно схлопнуть до бизнесового "чтобы хорошо ронять на тендерах IBM". И если для такой конкуренции нужно 30 000 Эльбрусов купить втридорога — посчитайте, пара инсталляций межделмаша со скидкой их окупит.

Почему процессор называется российским, если всё делается за рубежом?..

A: Современная индустрия движется к очень небольшому количеству фабрик: чем меньше технологический процесс, тем дороже оборудование; при этом мощности такой фабрики может хватить на половину всего мирового спроса. Услугами TSMC и Samsung пользуются те же Apple, NVIDIA, AMD.

A: Самое главное -- кто спроектировал микросхемы. Если мы, то можем переходить с одной фабрики на другую.

A: Процессор «Эльбрус», южный мост к нему и сама плата под процессоры разрабатываются в Москве, имеется соответствующее подтверждение на сайте Министерства промышленности и торговли Российской Федерации. Поверхностный монтаж плат тоже производится на заводах внутри страны. imaxai

A: Что касается ПО, то очень существенную часть мы делаем сами (это в первую очередь компилятор, порядка 2 млн строк кода); кроме того, сотни тысяч строк кода вносим в ядро Linux, чтобы работало на процессоре Эльбрус; а где возможно, берём свободное ПО, которое развивается всем миром, в том числе и российскими программистами. Здесь важно то, насколько удаётся обеспечить собственный цикл поддержки этого ПО; мы сами развиваем ОС Эльбрус (Эльбрус Линукс). Alexanius

Почему бы не лицензировать x86?

A: Например, потому, что его больше не лицензируют.

A: Зачем лицензировать тупиковую систему команд, даже если наиболее популярную на нынешний день? CISC-процессоры давно стали RISC-ядром со сложнейшим декодером CISC-команд, занимающим до половины кристалла; в МЦСТ и тут подошли творчески, реализовав слой совместимости с x86 программно.

A: Это был бы примерно тот же путь копирования, что и избранный в СССР -- только со "следованием в кильватере" не физического устройства микросхем, а развиваемой другими системы команд; в любом случае такой путь задаёт судьбу догоняющего по определению, притом не из лёгких -- универсальные процессоры ныне являются крайне сложными устройствами, технологии которых, как правило, не предназначены для передачи третьим сторонам. Даже если бы кто-то лицензировал старый дизайн, разбираться в нём можно долгие годы (и то не до конца) -- а до того, чтобы как-то развивать, прошло бы лет десять; за этот срок создатель дизайна уйдёт далеко вперёд.

применение

Интересно, где используется Эльбрус?

A: Изначально -- в оборонке, что его и спасло от небытия в угоду копированию по решению политиков 1967 года; в наши дни -- уже много где, но по сути пока в госсекторе и госкорпорациях:

Как перенести свои программы на Эльбрус?

Q: Что учитывать в начале разработки, чтобы потом проще было портировать? На каких языках писать, какие существующие библиотеки использовать?

A: Чтобы писать программы, которые хорошо портируются на Эльбрус, надо не завязываться ни на одну конкретную платформу; на сегодня написанное кроссплатформенно на языках C и C++ скорее легко переносимо и на e2k (при условии, что уже перенесено на Linux без привязки к каким-либо закрытым библиотекам). Важно, чтобы не было [безусловных] ассемблерных вставок или других сильно зависимых от архитектуры фрагментов кода. Кроме того, см. раздел "Программное обеспечение" на сайте МЦСТ, где доступны списки пакетов ОС Эльбрус (и страничку порта ОС Альт), и Руководство по эффективному программированию на платформе «Эльбрус».

A: Например, хорошо переносится ПО с применением библиотек Qt и/или РСУБД PostgreSQL.

A: Перенос программ на JavaScript, Java, C# возможен, но особенности архитектуры VLIW делают более выгодным с точки зрения производительности применение кода, спланированного к выполнению на этапе компиляции, а не байт-кода (в т.ч. и при наличии портированного JIT-компилятора). В ещё большей мере это относится к интерпретаторам скриптовых языков.

доступность

Может, пора уже пойти в народ? Возможно ли это на данном этапе или нет и почему?

A: Давно пора, давно... ещё в прошлом году было уже время, как по мне.

Прямо сейчас "выходу эльбруса в народ" мешают в первом приближении два фактора, насколько знаю:

  1. себестоимость (изготовление и корпусирование СБИС в мелких партиях -- это *дорого*, изготовление плат и систем на них в количествах порядка ста штук -- тоже слишком ручная работа);
  2. NDA.

Последнее обусловлено не только МЦСТ (по любым причинам) -- с причастными третьими сторонами мы вместе работаем, но там не всё так просто и быстро, как хотелось бы (хотя самая инертная, казалось бы, сторона как раз пошла навстречу). Здесь маячком будут дальнейшие новости от МЦСТ по части системы команд и PDK -- а сейчас и мне как частному лицу продать не могут, хотя уже созрел купить домой. mike@

Тем не менее сильно желающие могут оформить/задействовать ИП и обзавестись "Эльбрусом" уже сейчас.

Ну а по первому... оценки, которые я видел -- стоящий сейчас триста с хвостиком тысяч 801 можно продавать по 70--80 т.р., если изготавливать в партиях порядка 10 тысяч штук (одноядерник, сейчас стоящий примерно вдвое дешевле -- ниже 50, соответственно). Это ещё далеко не ценовая конкуренция с x86, но уже гораздо ближе к ней даже не по меркам военных (насколько знаю, один доверенный BIOS выдать на-гора -- ещё та часть затрат, не говоря о малотиражном же исследовании чипов).

Когда уже будет 16С с виртуализацией?

A: Инженерные образцы микропроцессора "Эльбрус-16С" по состоянию на отябрь 2020 года получены; завершение разработки по плану -- декабрь 2021 года, с учётом реалий фабричного производства готовые системы ожидаются во второй половине 2022 года.

Qemu?

Q: Как запустить e2k-код на x86?

A: Есть потактовая модель уровня процессора и есть эмулятор уровня операционной системы. Совсем медленные, поскольку накладные расходы на эмуляцию VLIW-процессора огромны. Годятся только для отладки.

железо

Основная статья: эльбрус/hcl

Зачем ECC-память на не-сервере?

A: на рабочих станциях вообще-то тоже применяется нормальная память (и в больших объёмах); но главное тут то, что встроенный в процессоры "Эльбрус" контроллер памяти помимо эффективной кодировки ECC хранит в дополнительных девятых битах ещё и информацию о тегировании областей памяти для защищённого режима.

Почему только Radeon?

вопрос пользователя crypt

A: на чём-то надо было остановиться в качестве видеоакселератора, а для Radeon есть свободные драйверы приличного качества (nouveau от них отстаёт, хотя между закрытыми драйверами для видеокарт ATI/AMD и NVIDIA сравнение выходит ровно противоположное.

A: уже не только, на свежих выпусках OSL 5+ и ALT 9+ поддерживается и драйвер nouveau; на некоторых картах получают неплохие результаты.

Почему не сокет?

A: начнём с решаемой задачи: сокет позволяет использовать один процессор с разными материнскими платами, а с одной материнской платой -- разные процессоры; ввиду существенных различий между поколениями процессоров "Эльбрус" (версии чипсета, поколение DDR...) и высокой надёжности оборудования польза представляется минимальной.

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

A: тенденция, однако.

Теплораспределительная крышка припаяна к кристаллу или на термопасте?

A: теплопроводящий клей.

Защита от перегрева есть?

A: есть, есть -- 8С на 1300 МГц без радиатора (в миллиметре от него) примерно через минуту отключает.

разное

Почему при работе ntpd сильно уходит время?

A: непонятно, но замечено, что так "работает" openntpd; рекомендуем chrony, с ним всё хорошо.

Есть ли в репозитории wine?

A: wine имеет смысл портировать и собирать на платформах, для которых существует порт Windows (и соответственно приложения для него) -- например, WINE для x86_64 умеет запускать только win64-приложения, аналогично для ARM; поскольку на e2k не существует такоо ABI и приложений, то и "родной" wine не имеет смысла. При необходимости запускать именно Windows-приложения на ВК "Эльбрус" можно воспользоваться бинарным транслятором либо в виде связки rtc+wine, либо в режиме "вся машина" (lintel).

Как подключить EPEL?

A: подключать есть смысл репозитории, подходящие для применяемых дистрибутива и платформы; по состоянию на январь 2020 года RHEL и соответственно EPEL для платформы e2k не наблюдается (равно как и Ubuntu+PPA или openSUSE+OBS).

Интересно, а очень сложно будет в Gentoo добавить поддержку e2k?

A: здесь нашла коса на камень. В Gentoo фундаментальным принципом сообщества является социальный контракт, где сказано:

Gentoo will never depend upon a piece of software or metadata unless it conforms to the GNU General Public License, the GNU Lesser General Public License, the Creative Commons - Attribution/Share Alike or some other license approved by the Open Source Initiative (OSI).

А единственный компилятор под Эльбрус — lcc — проприетарный и в обозримом будущем его никто открывать не будет. Это плохо, но разработчиков компилятора и процессора тоже можно понять, т.к. там слишком низкоуровневые вещи зашиты, что-то вроде микрокода intel/amd, который тоже никто открывать не собирается.

Будет ли процессор 16СВ с векторными расширениями?

A: Нет; будет процессор Эльбрус-16C шестой версии архитектуры e2k, которая включает в себя все возможности пятой версии.

При этом Эльбрус-8СВ (v5) хотя и весьма близок к Эльбрус-8С (v4): те же восемь ядер, схожая тактовая частота -- но отличается не только 128-битными регистрами и соответствующими векторными операциями; собственно, поэтому он и v5, а не "v4+avx" или вроде того.

То есть "16СВ" не стоит в планах по той простой причине, что появившиеся в e2kv5 векторные операции входят и в систему команд v6, которую поддерживает штатный 16С.

Как справиться с потерями пакетов или артефактами шрифтов на 802 материнской плате?

A: Добавьте iommu=no-numa-bug в cmdline для текущего ядра в /boot/boot.conf -- проверено как с 10GE, так и с R7 240.

Ссылки

Видео