Спецпроекты

Система команд процессоров «Эльбрус» впервые опубликована в открытом доступе

4332
Интеграция Электроника Техника
МЦСТ впервые выложила в открытом доступе руководство по программированию вычислительной платформы «Эльбрус» с описанием системы микропроцессорных команд. Решение доступно по открытой лицензии с указанием автора.

Впервые в открытом доступе

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

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

Документация по работе с отечественной микропроцессорной платформой уже доступна на сайте компании и представлена под открытой лицензией Creative Commons (CC-BY 4.0), которая позволяет сторонним пользователям свободно перерабатывать, развивать, вносить исправления и распространять продукт, в том числе, в коммерческих целях, но при соблюдении обязательного условия указания автора исходной работы. Документы доступны для скачивания в форматах HTML и PDF.

«Эльбрус» по открытой лицензии

Представленное МЦСТ руководство по программированию для платформы «Эльбрус» применимо с любой операционной системой на базе Linux. В него вошли материалы по адаптации имеющегося кода к «Эльбрусам» для корректной работы ПО, описание приемов компиляции программ, примеры ассемблера и отладки.

vliw4.jpg
4-ядерный МЦСТ «Эльбрус-4C»

Документ содержит описание интерфейсов и внешних особенностей платформы, на которые необходимо обратить внимание в процессе портирования и изменения программ. В разделе с описанием техники оптимизации приводится анализ с рекомендациями по оценке эффективности тех или иных преобразований кода для повышения производительности ПО, в том числе, за счет распараллеливания исполняемого кода на уровне инструкций ассемблера.

8-ядерный процессор МЦСТ «Эльбрус-8C»

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

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

vliw5.jpg
8-ядерный процессор МЦСТ «Эльбрус-8CВ»

В документации представлены описания и характеристики актуальных на сегодняшний день моделей микропроцессоров «Эльбрус», включая 4-ядерный «Эльбрус-4C», 8-ядерные «Эльбрус-8C» и «Эльбрус-8CB». Есть описание разницы исполнения команд скалярными и суперскалярными процессорами, с подробным разъяснением конвейеризации и параллельной группировки в процессе исполнения команд.

vliw2.jpg
Пример работы конвейера вычислительного ядра «Эльбруса»

В описании архитектуры «Эльбрус» подробно описан принцип использования «очень длинных машинных команд» (VLIW), специфика применения компилятора процессора для анализа зависимостей и оптимизации порядка исполнения операций и другие отличия от «традиционных» процессоров с архитектурой RISC/CISC.

Сравнение исполнения кода OOOSS (out-of-order superscalar) и VLIW

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

Успехи современных процессоров «Эльбрус»

В феврале 2020 г. CNews рассказал об итогах сравнительного тестирования производительности 8-ядерных процессоров «Эльбрус-8C» с тактовой частотой 1,3 ГГц, производимого с соблюдением норм техпроцесса 28 нм и способного выполнять до 25 операций за такт в каждом ядре, или до 250 млрд операций с плавающей запятой в секунду.

Для исследования были использованы ресурсы тематического проекта RakeSearch Карельского научного центра Российской академии наук. По итогам тестов выяснилось, что скорость однопоточных вычислений на «Эльбрус-8C» проигрывает современным процессорам для настольных ПК в два-четыре раза, но в то же время при сравнении с серверными процессорами разрыв уменьшается до полутора-двух раз.

Сравнение «Эльбрус-8C» с другими процессорами

С учетом того, «Эльбрус-8C» обладает меньшим числом ядер, вычислительных потоков и более низкой тактовой частотой, автор исследования сделал вывод о том, что его производительность на такт как минимум не хуже, чем у лучших десктопных и серверных процессоров.

В случае с десктопными процессорами в системе может быть только один процессор, в серверных системах на Xeon E5 — до двух CPU, но в случае с «Эльбрус-8С» в сервер можно поставить до четырех процессоров. Это существенно уменьшает отставание в ситуации, когда у Xeon E5-2683 v3, выпущенного в 2014 г., на один сокет приходится 14 ядер (и 28 потоков), а у «Эльбруса» — восемь. Двусокетной машине с 28 ядрами уже сейчас можно сопоставить машину на «Эльбрусе» с 32, заключил автор исследования.

В мае 2019 г. CNews также сообщил о том, что силами Институтом электронных управляющих машин им. И. С. Брука» (ИНЭУМ, входит в концерн «Автоматика» госкорпорации Ростех) и системного интегратора Группы РСК был создан первый в России суперкомпьютер на базе отечественных 8-ядерных процессоров «Эльбрус-8С».

Сервер на «Эльбрусах» для суперкомпьютера с водяным охлаждением

Суперкомпьютер для большей энергоэффективности получил охлаждение горячей водой и при необходимости может задействовать интерконнект «Ангара» отечественной разработки. Суперкомпьютер обладает высокой удельной вычислительной плотностью: при необходимости в одну стойку может уместиться 153 blade-сервера с четырьмя процессорами «Эльбрус-8С» каждый. В итоге пиковая производительность на один сервер составляет 0,5 Терафлопс, а производительность одной стойки достигает 75 Терафлопс.

МЦСТ сохранит архитектуру SPARC

Ранее, рассуждая о перспективах развития компании в обозримом будущем, заместитель гендиректора МЦСТ по маркетингу Константин Трушкин сообщил CNews о том, что компания не намерена отказываться от разработки архитектуры SPARC, альтернативной «Эльбрусам». На базе архитектуры SPARC, в частности, выполнены процессоры МЦСТ R-1000 и МЦСТ R-2000. Второй из этих чипов увидел свет в начале 2018 г. и предположительно будет востребован в телеком-оборудовании. В МЦСТ наработки на SPARC считают истинно своими, хотя и признают, что система команд в них лицензированная.

Архитектура SPARC (Scalable Processor Architecture — масштабируемая архитектура процессора) была разработана в середине 1980 гг. компанией Sun Microsystems, но спустя несколько лет ее спецификации стали общим достоянием. С 1989 г. развитием архитектуры занимается независимая некоммерческая организация SPARC International, продающая разработчикам лицензии на ее модификации.

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

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