Позавчера разработчик российских процессоров общего назначения Эльбрус, компания МЦСТ, провела т.н. «ELBRUS PARTNER DAY» (вообще, достают уже эти труднопроизносимые малопонятные англоязычные названия, даже в МЦСТ профессиональное сообщество живёт в мире западных образов), где озвучила некоторые новые интересные планы.
Важнейшей характеристикой микропроцессора Эльбрус является однопоточная производительность, и компания намерена её существенно увеличивать в новой линейке «Эльбрус-32С». Скорее всего, это будет сделано за счёт планируемого добавления системы динамической оптимизации (обратная связь от сценария исполнения программы для оптимального планирования кода), что сулит повышение производительности до двух раз.
Было сказано, что в компании нашли ресурсы для существенного развития оптимизирующего компилятора. Не очень понятно, что имеется ввиду, то ли материальные ресурсы, то ли пути повышения его эффективности. Исходя из слов «для существенного развития», речь идёт, скорее, именно о путях повышения его эффективности. Про финансовую сторону сказали бы иначе.
На слайде ниже показаны все пути повышения производительности и другие потенциальные улучшения, которые видят в МЦСТ:
Из наиболее примечательного я бы отметил планируемое использование в архитектуре процессора также и RISC-ядер. Очевидно, это будут RISC-V или SPARC-ядра. Но я больше склоняюсь к первому варианту.
Кстати, первый раз я высказал своё мнение о полезности гибридного подхода и использования в Эльбрусе дополнительных RISC-V-ядер ещё в начале сентября (более трёх месяцев назад) в своей статье «Российский процессор Эльбрус, VLIW + RISC-V?». Позже в октябрьской статье «Кроме процессора «Эльбрус» МЦСТ собирается разрабатывать ещё один — на архитектуре RISC-V!» на основании брошенных вскользь фраз я поспешил предположить, что они собираются делать отдельный RISC-V-процессор. И вот теперь, похоже, всё встаёт на свои места. Процессор таки будет гибридным.
Теоретически, RISC-ядро не обязательно должно участвовать в вычислениях. Оно может осуществлять там лишь какие-то вспомогательные функции, как это, например, планируется сделать в перспективных процессорах Baikal-L и Байкал-S2, где оно будет отвечать за систему доверенной загрузки и менеджмента. Но поскольку здесь оно перечислено в разделе практического ускорения ПО, то оно, скорее всего, будет вычислительным.
Смена наименований процессоров
Согласно этому слайду, показанному на мероприятии, меняется система наименований процессоров:
Теперь цифра в наименовании означает не количество ядер, а поколение архитектуры, что более правильно, а буква — ниша устройств, для которых он позиционируется, как это сделано у Байкал Электроникс.
Таким образом, у нас будет 64-ядерный Эльбрус-7S для серверов, который тут пока ещё назван «Эльбрус-32», а также 16-ядерный Эльбрус-7М для мобильных устройств, таких, как ноутбуки и 4-ядерный Эльбрус-7L для встраиваемой техники и планшетов.
Фигурировавший ранее 4-8-ядерный Эльбрус-4С3, намечавшийся к появлению в 2025 году, расщепился на два уже более конкретных процессора — более мощный 16-ядерный Эльбрус-7М и 4-ядерный Эльбрус-7L, оба со встроенной графикой. Первый может появиться в конце 2025-го года, а второй в 2026 году (речь об инженерных партиях).
Ближайшие планы
Процессоры Эльбрус-8СВ, заказанные в количестве 10 тысяч штук, пришли с тайваньской фабрики на таможню и будут у МЦСТ до конца этого года. То есть, уже вот сейчас.
В ближайшие дни на фабрику пойдёт заказ на второй выпуск инженерных образцов серверного процессора Эльбрус-16С, в котором улучшены характеристики.
Готовится второй выпуск инженерных образцов Эльбрус-2С3 для ноутбуков и рабочих станций начального уровня. Вообще, процессор является очень компромиссным в плане его производительности, и в первую очередь заточен, насколько можно понять, на дешевизну устройств, его использующих (мало ядер, встроенная графика). Стоимость, без сомнения, является больным местом Эльбрусов. Процессор Эльбрус-2с3 делает эдакий «ход конём», что косвенно подтверждается и его названием: e2c3 — это как раз ход конём (е2→с3), как справедливо заметили в одном из чатов )))
Эльбрус-12С для рабочих станций и серверов начального уровня ждёт подготовки к первому выпуску. Эльбрус-12С будет существенно удешевлённым вариантом Эльбрус-16С.
В 2023 году будет выпущено 50 000 серверных процессоров, 70 000 процессоров для рабочих станций и 150 000 процессоров для ноутбуков. Годом позже планируется увеличение выпуска до 100 000 серверных процессоров (2х рост), 150 000 процессоров для рабочих станций (2х рост) и 250 000 (почти 2х рост) процессоров для ноутбуков:
Получены также первые инженерные образцы процессора МЦСТ-R2000+ для встраиваемых устройств (это другая ветка, SPARC). Он заточен на низкое электропотребление. Его можно также использовать, как внешнюю видеокарту — это заложено в его конструкцию.
Где Эльбрус плох, а где хорош?
На мероприятии был показан ещё вот такой слайд, описывающий эффективность работы софта для Эльбруса на сегодняшний момент в том виде, в котором он написан сегодня:
Чем левее по оси Х, тем хуже процессор себя проявляет, чем правее — тем лучше. По оси Y, чем выше, тем больше готового ПО для Эльбруса имеется на данный момент. Мы видим, что лучше всего показывают себя базы данных, высокопроизводительные вычисления, обработка т.н. Больших данных, искусственный интеллект, граничные вычисления. Хуже всего показывают себя скриптовые языки и вообще вся веб-обработка. Также не очень хорошо чувствуют себя языки динамической компиляции, хотя последнее время наметился очень серьёзный прогресс. Офисное ПО работает хорошо.
Об открытости компилятора
Стандартным компилятором для Эльбруса является собственный lcc, аналог gcc. Поддерживает языки программирования C, C++, Fortran. Но в настоящий момент делается упор на следующую структуру компилирования. В качестве языковой части используется LLVM (открытая лицензия), который транслирует исходный код с нужного языка программирования (неограниченный, постоянно пополняемый список языков) во внутренний универсальный код. А вот уже далее этот промежуточный код компилируется в машинные коды Эльбруса собственным Эльбрусовским компилятором. Такое решение уже готово и тестируется бета-тестерами.
Вместе с тем, МЦСТ не планирует открывать исходный код компилятора и даже коды команд процессора, объясняя это несколькими причинами. Во-первых, есть вероятность, что в процессе эволюции процессора набор кодов ещё может меняться. Во-вторых, оптимизирующий компилятор для Эльбруса слишком сложный, и сообщество не сможет его эффективно разрабатывать, а у МЦСТ нет ресурсов на курирование этой деятельности.
Отмазки так себе. Понятно, что есть другие, более веские причины. Возможно, это просто требование Минобороны.
Заключение
На сегодня всё. Если информация была вам интересна, поставьте, пожалуйста лайк. Это повысит рейтинг статьи. Также подписывайтесь на канал, чтобы не пропустить другие интересные вещи и делитесь своим мнением в комментариях. Удачи!