Эльбрус/faq

Материал из ALT Linux Wiki
@e2k_chat
форум
English

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

горячее

Где исходники?

A: mcst.ru/sources

ликбез

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

A: Это лучший российский процессор, причём мирового уровня.

Если "слышали, что это тупик" -- внимательно почитайте ответ специалиста: Процессор Эльбрус — почему статья о тупике несостоятельна (автор -- компиляторщик).

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

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

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

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

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

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

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

A: Очень хороший вопрос, я тоже не знаю[1]. Просто вижу факт: из каждой щели прут такие заявления. И весьма достают эти диванные теоретики. Ну или что-то в духе: криптография - одна из редких задач, в которых Эльбрус может быть хорош. Ребят, очнитесь, шифры всю жизнь разрабатывались на последовательную обработку, чтобы криптоанализ ничего не дал. И только самые современные начали больше думать и о скорости. Но опять же, это только про зарубежные алгоритмы. ответ Дмитрия Щербакова

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

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

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

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

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

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

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

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

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

A: Сюда же сравнивающим с "Итаником" (Itanium): интеловые политические разборки и вечный NIH-синдром, в отличие от воровства людей и наработок -- проблемы Intel, а не МЦСТ.

A: Вариант "почему бы не заняться RISC-V" упирается, как обычно, в кадры (полюбуйтесь сами, в какие).

Так Эльбрусов же теперь не будет из-за поддержки TSMC американских санкций?

A: да, TSMC приостановила выполнение производственного контракта; из юго-восточных вариантов теперь -- китайская фабрика SMIC (для которой понадобится переработать физдизайн, но не сам процессор), да и Тайвань может наконец вернуться в родную гавань.

A: в России разрабатывается технология безмасочной рентгеновской литографии.

А что такое "в нативном режиме"?

A: Это значит, что не используется эмуляция х86, что приложение скомпилированно именно под Эльбрус. (@elbrus_pc_test)

применение

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

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

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

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

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

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

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

Как приобщиться к ассемблеру e2k?

Поизучать можно на данном экземпляре Compiler Explorer; а ассемблер в сишный код добавлять не надо, лучше для этого применять интринсики (x86 или e2k). Эльбрус не предполагает использование ассемблера для разработки, это задача компилятора -- заниматься низкоуровневой оптимизацией.

Для кого Эльбрус Линукс, PDK? Чем отличается x86-версия?

A: Коммерческий дистрибутив ориентирован на компьютеры архитектуры Эльбрус и SPARC, а бесплатный вариант для x86_64 является лишь бонусом, который можно использовать в инструментальных целях. Как самостоятельная система для повседневного использования на x86 в качестве основной ОС этот бесплатный дистрибутив не позиционируется.

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

A: Набор разработчика платформы «Эльбрус Линукс» (PDK) — исходные коды, патчи, инструменты сборки. Да, PDK стоит немалых денег, потому что его целевая аудитория — коммерческие разработчики собственных ОС, и в цену заложена техническая поддержка.

A: Как вы можете прочитать на странице описания Эльбрус Линукс, данная система не базируется [на] Debian — общего у них только формат установочных пакетов и, возможно, некоторое пересечение по методам настройки со старыми версиями Debian. <...>

A: Что фактически меняется при переходе от одной версии Эльбрус Линукс к другой — в первую очередь это версия ядра Linux и версия компилятора и его базовых библиотек, потому что ядро даёт драйверы современного оборудования, а оптимизирующий компилятор является такой же частью платформы Эльбрус, как система команд процессора, и позволяет повышать быстродействие программ без изменений в аппаратуре. Остальные компоненты операционной системы меняются по мере необходимости: например, в версии 6.0 был значительно обновлён графический стек <...>

доступность

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

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

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

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

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

A: Практически -- возможно!

A: Сильно желающие уже могут обзавестись собственным Эльбрусом; собственно, свой пример.

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

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

A: тем временем Ростелеком задокументировал применение LXC на ОС Эльбрус (см. тж. эльбрус/lxc).

Qemu?

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

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

A: См. тж. экспериментальные патчи к QEMU (анонс).

Можно ли получить оборудование на пробу? А бесплатно?

A: Доступ -- да; юрлицом и обычным человеком.

A: Более длинная версия ответа (см. тж. копию в комментарии в исходнике этой вики-страницы).


железо

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как температуры-обороты смотреть?

A: установив пакет lm_sensors3 и запустив команду sensors-detect; также может быть полезно добавить в автозагрузку (/etc/modules) модуль l_pcs (8С, 8СВ) либо pcsm_drv (v6) для снятия температуры ядер процессора. (тж. здесь)

Поддерживается бифуркация PCIe?

A: на известных платах до v6 включительно -- нет; но в МЦСТ про эту возможность знают.

разное

Почему при работе 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.

Куда девается изображение на экране при загрузке 901-РС с установленным Radeon?

A: Если бут сконфигурирован выводить через ASPEED или "автоматом" (когда смотрит, куда подключен монитор) -- то изображение пойдёт через встроенный VGA-выход; при этом если к Radeon подключен монитор при загрузке, то инсталятор сочтёт его приоритетным и запустит графику именно на нём. Соответственно стоит либо сконфигурировать бут на применение дискретной видеокарты (см. get video output в расширенном режиме), либо подключить монитор только к Radeon, а с прошивкой работать через COM-порт, либо же подключить по монитору или входу KVM к обеим видеокартам на время установки.

Что значит буква "С" в наименовании "Эльбрусов"?

A: Когда-то С было от "система на кристалле". Потом оставалось по традиции.

Можно ли сконфигурировать автозапуск машины при подаче питания?

A: Да; в расширенном меню ПНС (нажать тильду ~ после пробела для остановки автозагрузки) выполнить get pbs и командой set pbs [0/1] выставить противоположное значение (в части версий описание значений перепутаны).

A: Да; спросите у поддержки, каким именно DIP-переключателем, предоставив модель и серийный номер используемой платы.

Как получить видео на инженерке 2С3?

A: поставьте вторую планку памяти (по штуке на канал), если ещё не побороли.

Почему прыгает clocksource?

clocksource: Switched to clocksource lt
clocksource: Switched to clocksource sclkr
clocksource: Switched to clocksource lt
clocksource: Switched to clocksource sclkr

A: есть такой нюанс и для многопроцессорных машин мы добавляем sclkr=no в cmdline в boot.conf при возникновении таких скачек.

А у сотрудников МЦСТ есть возможность "залезть" в любой комп с процессором Эльбрус?

A: Если процессор разработан на условные деньги заказчика, то заказчик точно уверен, что аппаратных закладок там нет.

Ссылки

Видео

познавательное:

художественное:

аналитика:

обзоры:

meetup'ы:

  1. В оригинале вопрос был озвучен как "Кстати, я уже от дохрена людей слышал, что VLIW не взлетит? Откуда это?", по существу аналогичный