Эльбрус/faq: различия между версиями
м (→Видео: +1) |
м (→Зачем нужен этот ваш Эльбрус?: +1,5) |
||
Строка 19: | Строка 19: | ||
Вопрос "зачем нам нужен Эльбрус" можно схлопнуть до бизнесового "чтобы хорошо ронять на тендерах IBM". И если для такой конкуренции нужно 30 000 Эльбрусов купить втридорога — посчитайте, пара инсталляций межделмаша со скидкой их окупит. | Вопрос "зачем нам нужен Эльбрус" можно схлопнуть до бизнесового "чтобы хорошо ронять на тендерах IBM". И если для такой конкуренции нужно 30 000 Эльбрусов купить втридорога — посчитайте, пара инсталляций межделмаша со скидкой их окупит. | ||
A: Очень хороший вопрос, я тоже не знаю<ref>В оригинале вопрос был озвучен как "Кстати, я уже от дохрена людей слышал, что VLIW не взлетит? Откуда это?", по существу аналогичный</ref>. Просто вижу факт: из каждой щели прут такие заявления. И весьма достают эти диванные теоретики. Ну или что-то в духе: криптография - одна из редких задач, в которых Эльбрус может быть хорош. Ребят, очнитесь, шифры всю жизнь разрабатывались на последовательную обработку, чтобы криптоанализ ничего не дал. И только самые современные начали больше думать и о скорости. Но опять же, это только про зарубежные алгоритмы. ''<small>ответ [http://habr.com/ru/post/563308/ Дмитрия Щербакова]</small>'' | |||
<!-- и туда же был соответ ещё одного специалиста: "Думаю, это результат работы маркетологов, которые должны были пояснить, зачем нужно уходить от использования vliw4/vliw5, которые были довольно эффективными для 3D-графики, но становились проблемой для более широкого класса задач CUDA/OpenCL. Плюс судьба итаника: он же не взлетел" --> | |||
=== [https://www.youtube.com/watch?v=f_hwK0zM9y8&t=10m18s Почему процессор называется российским, если всё делается за рубежом?..] === | === [https://www.youtube.com/watch?v=f_hwK0zM9y8&t=10m18s Почему процессор называется российским, если всё делается за рубежом?..] === |
Версия от 14:41, 27 июня 2021
ЧаВо по Эльбрусу
ликбез
Зачем нужен этот ваш Эльбрус?
A: Эльбрус хорошо решает математические задачи ввиду ряда архитектурных особенностей.
- На мат. задачах можно хорошо утилизировать исполняющие устройства при помощи компилятора, т.е. забивка ШК получается очень плотной.
- Там, где это возможно, применяется устранение переходов при помощи предикатов, что позволяет не терять лишнего времени на факт перехода.
- Для циклов существуют специальные средства аппаратного ускорения. Например, аппаратный счётчик итераций, который не только освобождает одно устройство, но и позволяет генерировать специальные команды работы с памятью.
- Асинхронная подкачка данных (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: Изначально -- в оборонке, что его и спасло от небытия в угоду копированию по решению политиков 1967 года; в наши дни -- уже много где, но по сути пока в госсекторе и госкорпорациях:
Как перенести свои программы на Эльбрус?
Q: Что учитывать в начале разработки, чтобы потом проще было портировать? На каких языках писать, какие существующие библиотеки использовать?
A: Чтобы писать программы, которые хорошо портируются на Эльбрус, надо не завязываться ни на одну конкретную платформу; на сегодня написанное кроссплатформенно на языках C и C++ скорее легко переносимо и на e2k (при условии, что уже перенесено на Linux без привязки к каким-либо закрытым библиотекам). Важно, чтобы не было [безусловных] ассемблерных вставок или других сильно зависимых от архитектуры фрагментов кода. Кроме того, см. раздел "Программное обеспечение" на сайте МЦСТ, где доступны списки пакетов ОС Эльбрус (и страничку порта ОС Альт), и Руководство по эффективному программированию на платформе «Эльбрус».
A: Например, хорошо переносится ПО с применением библиотек Qt и/или РСУБД PostgreSQL.
A: Перенос программ на JavaScript, Java, C# возможен, но особенности архитектуры VLIW делают более выгодным с точки зрения производительности применение кода, спланированного к выполнению на этапе компиляции, а не байт-кода (в т.ч. и при наличии портированного JIT-компилятора). В ещё большей мере это относится к интерпретаторам скриптовых языков.
Для кого Эльбрус Линукс, PDK? Чем отличается x86-версия?
A: Коммерческий дистрибутив ориентирован на компьютеры архитектуры Эльбрус и SPARC, а бесплатный вариант для x86_64 является лишь бонусом, который можно использовать в инструментальных целях. Как самостоятельная система для повседневного использования на x86 в качестве основной ОС этот бесплатный дистрибутив не позиционируется.
A: ОС Эльбрус [она же Эльбрус Линукс] — это та площадка, на которой в первую очередь обкатываются все технологические новшества: ядро, компиляторы, трансляторы и интерпретаторы, библиотеки, веб-браузеры (сейчас браузеры по сложности сопоставимы со всей остальной ОС); только после этого данные технологие перекочёвывают в другие ОС.
A: Набор разработчика платформы «Эльбрус Линукс» (PDK) — исходные коды, патчи, инструменты сборки. Да, PDK стоит немалых денег, потому что его целевая аудитория — коммерческие разработчики собственных ОС, и в цену заложена техническая поддержка.
A: Как вы можете прочитать на странице описания Эльбрус Линукс, данная система не базируется [на] Debian — общего у них только формат установочных пакетов и, возможно, некоторое пересечение по методам настройки со старыми версиями Debian. <...>
A: Что фактически меняется при переходе от одной версии Эльбрус Линукс к другой — в первую очередь это версия ядра Linux и версия компилятора и его базовых библиотек, потому что ядро даёт драйверы современного оборудования, а оптимизирующий компилятор является такой же частью платформы Эльбрус, как система команд процессора, и позволяет повышать быстродействие программ без изменений в аппаратуре. Остальные компоненты операционной системы меняются по мере необходимости: например, в версии 6.0 был значительно обновлён графический стек <...>
доступность
Может, пора уже пойти в народ? Возможно ли это на данном этапе или нет и почему?
A: Давно пора, давно... ещё в прошлом году было уже время, как по мне.
Прямо сейчас "выходу эльбруса в народ" мешают в первом приближении два фактора, насколько знаю:
- себестоимость (изготовление и корпусирование СБИС в мелких партиях -- это *дорого*, изготовление плат и систем на них в количествах порядка ста штук -- тоже слишком ручная работа);
- NDA.
Последнее обусловлено не только МЦСТ (по любым причинам) -- с причастными третьими сторонами мы вместе работаем, но там не всё так просто и быстро, как хотелось бы (хотя самая инертная, казалось бы, сторона как раз пошла навстречу). Здесь маячком будут дальнейшие новости от МЦСТ по части системы команд и PDK -- а сейчас и мне как частному лицу продать не могут, хотя уже созрел купить домой. mike@
Тем не менее сильно желающие могут оформить/задействовать ИП и обзавестись "Эльбрусом" уже сейчас.
Ну а по первому... оценки, которые я видел -- стоящий сейчас триста с хвостиком тысяч 801 можно продавать по 70--80 т.р., если изготавливать в партиях порядка 10 тысяч штук (одноядерник, сейчас стоящий примерно вдвое дешевле -- ниже 50, соответственно). Это ещё далеко не ценовая конкуренция с x86, но уже гораздо ближе к ней даже не по меркам военных (насколько знаю, один доверенный BIOS выдать на-гора -- ещё та часть затрат, не говоря о малотиражном же исследовании чипов).
Когда уже будет 16С с виртуализацией?
A: Инженерные образцы микропроцессора "Эльбрус-16С" по состоянию на отябрь 2020 года получены; завершение разработки по плану -- декабрь 2021 года, с учётом реалий фабричного производства готовые системы ожидаются во второй половине 2022 года.
Qemu?
Q: Как запустить e2k-код на x86?
A: Есть потактовая модель уровня процессора и есть эмулятор уровня операционной системы. Совсем медленные, поскольку накладные расходы на эмуляцию VLIW-процессора огромны. Годятся только для отладки.
A: См. тж. экспериментальные патчи к QEMU (анонс).
Можно ли получить оборудование на пробу? А бесплатно?
A: Да.
A: Более длинная версия ответа (см. тж. копию в комментарии в исходнике этой вики-страницы).
железо
Зачем 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: есть, есть -- 8С на 1300 МГц без радиатора (в миллиметре от него) примерно через минуту отключает.
Как температуры-обороты смотреть?
A: установив пакет lm_sensors3 и запустив команду sensors-detect; также может быть полезно добавить в автозагрузку (/etc/modules) модуль l-pcs для снятия температуры ядер процессора.
разное
Почему при работе 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.
Ссылки
- «Без этого мы не страна», интервью «Эксперту» (интервью с А.К. Кимом, PDF)
- Часто задаваемые вопросы об ОС «Эльбрус»
- Телеграм-канал e2k_chat
- Форум сообщества «Эльбрус»
- Неофициальный сайт Максима Горшенина
- Разбор некоторых мифов про «Эльбрус»
- Несколько непривычных для русофобов фактов про российские процессоры Эльбрус (ЧаВо "на пальцах")
Видео
- Ликбез по Эльбрусу / Константин Трушкин (МЦСТ) (слайды)
- Альт на Эльбрусе (доклады на конференциях)
- Тесты и игры на "Эльбрусе": Elbrus PC Test, Дмитрий Пугачёв
- Обзоры Дмитрия Бачило: вводный, разбор, тест, стрим
- Эльбрус — российский Intel и наша последняя надежда... (Ай, Как Просто!)
- Соната для Альта с Эльбрусом
- Эльбрус и дети. Знакомство
- ↑ В оригинале вопрос был озвучен как "Кстати, я уже от дохрена людей слышал, что VLIW не взлетит? Откуда это?", по существу аналогичный