Особенности архитектуры «Эльбрус» Александр Ким, Владимир Волконский ЗАО «МЦСТ» & ОАО «ИНЭУМ им. И.С.Брука» Научная конференция «Высокопроизводительные вычисления в науке и образовании» 25 марта 2009 г. ЗАО «МЦСТ» и его разработки • ЗАО «МЦСТ» – создана в 1992 г. на базе отделений ИТМ и ВТ им. С.А.Лебедева – с 2007 г. интегрируется с ОАО «ИНЭУМ им. И.С.Брука» • Микропроцессоры (МП) – семейство МП «Эльбрус» для высокопроизводительных вычислений – семейство МП «МЦСТ-R» для встраиваемых систем • Вычислительные комплексы – «Эльбрус-3М» на базе МП «Эльбрус» – Семейство «Эльбрус-90микро» на базе МП «МЦСТ-R» • Системное программное обеспечение – операционные системы (Linux, ОС МСВС, Solaris) – оптимизирующие компиляторы с языков С, С++, Фортран – система оптимизирующей двоичной трансляции для обеспечения совместимости с Интел x86 Микропроцессор «Эльбрус» Российский универсальный микропроцессор «Эльбрус» Не имеющая аналогов в мире высокопроизводительная архитектура Прошел успешные Государственные испытания в 2007 г. Вычислительные комплексы «Эльбрус-3М» на базе микропроцессора «Эльбрус» Исполнение CompactPCI Серверное исполнение Выдержал успешные Государственные испытания в 2007 г. Важнейшие особенности архитектуры «Эльбрус» • Высокая производительность за счет параллелизма – явный параллелизм операций – широкая команда – векторный параллелизм – использование ширины регистров – параллелизм потоков управления • Полная и эффективная (за счет параллелизма) двоичная совместимость с Intel x86 на базе скрытой динамической двоичной трансляции • Аппаратная поддержка защищенных вычислений (модульного программирования) – защита от вирусов – эффективный параллельный контроль при выполнении операций над объектами Параллелизм операций в архитектуре «Эльбрус» Архитектура микропроцессора Число операций, выполняемых за такт в одном ядре Intel Pentium 4 4 Intel Core 2 6 IBM Power 6 6 Intel Itanium 2 10 Эльбрус 23 По результатам ГИ производительность «Эльбруса» 300 МГгц в среднем равна 2 ГГц Pentium 4, логическая скорость превышает более 6 раз Программное обеспечение ВК «Эльбрус-3М» • Программная поддержка параллельной аппаратуры – Операционная система • обеспечивает многопроцессорный и многомашинный режим вычислительного процесса – Оптимизирующий компилятор • выполняет автоматическое оптимальное распараллеливание транслируемых программ – Система двоичной трансляции • Обеспечивает полную совместимость с Intel x86 • Характеристики ПО – разработано 5,4 млн. строк – перенесено с доработками под платформу 95,8 млн. строк Микропроцессор «Эльбрус» PLU CU bypass PF ALU0 ALU1 ALU2 ALU3 bypass D$L1 ALU4 ALU5 bypass RF RF D$L1 AAU MMU/TLB D$L2 IB APB MAU - команды - адреса - данные - предикаты System Controller Характеристики МП «Эльбрус» Эльбрус Intel Core2 Технология мкм 0,13 0,045 Частота МГц 300 2300 Количество транзисторов млн. 75,8 > 400 Количество слоев металла 8 8-9 Темп обмена с ОП ГБ/с 4,8 10,8 Темп обмена с КЭШ памятью ГБ/с 16,8 21,4 Мощность Вт 6 100 Размер кристалла кв. мм 189 150 Количество выводов BGA 900(470) > 1000 Пиковая производ-сть Гипс/Гфлпс - 32-разрядные числа 9,5/4,8 27,6/18,4 - 64-разрядные числа 6,9/2,4 13,8/9,2 Одновременно исполняемые операции скал. выч. цикл Int (8) / FP (9) / St (2) / Ld (4) - 10 + + Обработка предикатов - 3 + + Передача управления - 1 + + Загрузка литерала 32/64 - 4/2 + Считывание элемента массива - 4 + Адресная арифметика - 4 + Обработка счетчика цикла - 1 + ---------------------------------------------------------------------------------------Всего: 18/16 23 Оптимизирующий компилятор Fortran-77 C++, Gnu C++ Переносимый код C, Gnu C Блок формирования семантики: 32-разрядная, 64-разрядная, защищенная Блок анализа, оптимизации и генерации кода Код Эльбруса-3М Переносимый код Коды других платформ Блок анализа, оптимизации и генерации кода Глобальный межпроцедурный анализ и оптимизации Глобальный по-процедурный анализ и оптимизации Планирование и распределение регистров Генерация кода S St re P nd rc C ho c le ss ky G EN M ot UV P or _g ra M ph at ri x H pe oris o rm Fl oa ut n Bi at t in to io g pe ns po ra M int c a ti on at ri x lc s de ula c o t io n m po s G ur si au ti al ss n e on de tw S G or au c om tri n k ss po g s o de s rti c o iti o n, ng m po do si ub ti o le n, To s w in er gl of e H an oi Pr Si im ev Li e e nu st of m Er b at os e rs th en es FI R fil t G er -m ea n Pr og no sis относительная производительность Производительность ВК «Эльбрус-3М» 7 6 5 4 3 2 1 0 Pentium 4, 1400 МГц Эльбрус, 300 МГц На 21 задаче производительность в среднем равна 2 ГГц Pentium 4 Наиболее заметное преимущество на задачах с большим параллелизмом Производительность ВК «Эльбрус-3М» • Пиковая производительность (32-/64-разрядные операции) – 33/23 операций за такт – 16/8 вещественных операций за такт • На реальных задачах демонстрируется производительность близкая к пиковой - умножение матриц (DGEMM) 32/64 разряда 4,5/2,3 Гфлпс (пик – 4,8/2,4) - сложение матриц (STREAM – темп памяти) 4,6 ГБ/с (пик – 4,8) - быстрое преобразование Фурье (FFT) 32/64 разряда 2,8/1,5 Гфлпс (пик – 3,0/1,5) - Госкрипт – 97% загрузка арифметических устройств; в 3,6 раза быстрее Pentium 4 1,5 ГГц Двоичная трансляция x86 приложение x86 операционная система (Windows, Linux и др.) x86 BIOS x86 драйверы система двоичной трансляции микропроцессор «Эльбрус» система двоичной трансляции База «Эльбрус» кодов двоичный транслятор и оптимизатор «Эльбрус» код x86 код средства динамической поддержки x86 код «Эльбрус» код интерпретатор Эффективность двоичной совместимости с Intel x86 • Функциональность – Полная совместимость с архитектурой Intel x86 – Прямое исполнение 20+ операционных систем, в том числе: MSDOS, Windows XP, Linux, QNX – Прямое исполнение 1000+ самых популярных приложений • Производительность – Логическая скорость в 1,5-2 раза выше Pentium 4 – Достигается за счет скрытой системы двоичной трансляции, использующей параллелизм • Лицензионная независимость от Intel Производительность при полной совместимости с Intel x86 Производительность на задачах Spec95fp 2,5 2 PII, 300MHz Spec Ratio для 4 задач Spec2000fp 1000 800 P4, 1700MHz e3m, 300MHz 299 591 264 410 239 633 211 200 552 600 400 854 600 0 171.sw im 172.mgrid 173.applu 179.art Gmean(4) e3m, 300MHz Gmean 1,17 1,47 146.wave 0,83 145.fppp 0,73 141.apsi 125.turb3d 110.applu 107.mgrid 0,73 0,94 1,81 1,9 104.hudro2d 103.su2cor 102.swim 0 101.tomcatv 0,5 PIII, 450 MHz 0,8 1,33 1 2,24 1,5 На плавающих задачах Spec Lintel на платформе E3M 300Mгц превосходит x86 машину с процессором PIII 450Mгц При этом на некоторых задачах Spec2000fp Lintel всего в два раза отстаёт от P4 1.7 Ггц. Малое энергопотребление • Обеспечение эффективности энергопотребления – Архитектура предоставляет параллельные ресурсы – Компиляторы автоматически распараллеливают программу, эффективно загружая аппаратуру – Достигается для универсальных одноядерных микропроцессоров соотношение производительности к мощности – более 0,4 Гфлпс на 1 Вт Защищенные вычисления • Основаны на контекстной защите памяти на базе тегированной архитектуры • Служат основой защиты от компьютерных вирусов • Многократно ускоряется отладка программ • Эффективность реализации базируется на параллельном выполнении контроля – Не замедляет выполнение операций Защищенные вычисления Задачи Всего задач Задач с найденными ошибками Задачи пользователей 7 4 Пакет SPECint95 8 7 Пакет негативных тестов samate на защищенность 888 874 Типы ошибок: • нарушение границ объекта (переполнение буфера) • использование неинициализированных данных • использование опасных конструкций языка или опасных отклонений от стандарта языка Эффективный инструмент отладки программ Развитие линии «Эльбрус» • Увеличение производительности микропроцессоров – Повышение тактовой частоты – свыше 3 ГГц – Увеличение числа ядер на кристалле до 16 – Включение специализированных ядер • Увеличение производительности комплексов – Создание мощного 64-процессорного сервера (узла), работающего на общей памяти – Создание вычислительных систем, связывающих узлы мощными каналами обмена данными • Распараллеливание вычислений на уровне операций, ядер, процессоров и узлов с использованием компиляторов Система на кристалле Эльбрус-1С Memory (4 GB) DDR2-500 4 GB/s Memory (4 GB) DDR2-500 4 GB/s Processor PC I/O Controller LVDS 1+1 GB/s IOCC MC MC SC PCC PCC PCC LVDS 2+2 GB/s Processor LVDS 2+2 GB/s Processor LVDS 2+2 GB/s Processor Развитие линии микропроцессоров Рост производительности микропроцессоров (систем на кристалле) линии "Эльбрус" 1000 Производительность в Гигафлопс 1000 4000 МГц 256 2000 МГц 100 64 19,2 10 8 500 МГц, 12 Вт 1000 МГц, 31 Вт 600 МГц, 20 Вт 1 2009 2011 2012 2015 Эльбрус-1С Эльбрус-2С Эльбрус-4С Эльбрус-8С п-заказнная 90 нм п-заказнная 90 нм п-заказнная 65 нм заказнная 45 нм 2018 Эльбрус-16С заказнная 32 нм Годы выпуска, название микропроцессора, тип технологического процесса 4-х процессорные конфигурации на базе МП «Эльбрус» 4-х процессорный сервер (модуль) 1тфлпс Mem 4-х процессорный кластер (модуль) 1тфлпс I/O cpu Switch ● 4-х процессорный сервер – когерентная система с распределенной общей памятью ● 4-х процессорный кластер – базовый элемент для 16-ти и 64-х процессорных серверов. Switch содержит справочник и фильтр для построения когерентных систем ● CPU – 8 -ядерный процессор Развитие серверов и комплексов Рост роизводительности серверов и вычислительных комплексов линии "Эльбрус" сервер комплекс 10000 Производительность в Терафлопс 4000 1000 1000 256 100 10 76 16 8 4 1,2 1 2009 Эльбрус-3МС 0,1 64 0,128 2011 Эльбрус-4 2013 Эльбрус-5 2016 Эльбрус-6 Годы выпуска, название 2019 Эльбрус-7 Направления разработки компиляторов и ОС • Двоичная компиляция – Реализовать многопроцессорность – Обеспечить совместимость с х86-64 – Реализовать бинарный компилятор приложений – Повысить эффективность за счет компилятора в 1,5-2 раза • Повысить производительность за счет оптимизирующего компилятора с языков С, С++, Фортран в 1,5-2 раза • Высокопроизводительные библиотеки – Линейная алгебра, обработка сигналов, 3D графика • Поддержка в ОС несимметричного доступа в память Преимущества использования линии «Эльбрус» • Полностью российская архитектура • Простота перехода – За счет полной совместимости с Intel x86 – Наличие OS Linux, ОС МСВС – Наличие развитых средств разработки программ • Высокая логическая скорость при экономном потреблении энергии • Полный диапазон применения – настольные компьютеры, серверы, суперкомпьютеры • Платформа для создание безопасных систем • Низкая стоимость при массовом производстве СПАСИБО! Контакты авторов: [email protected], [email protected] Состав ОПО «Эльбрус» • Операционные системы – Linux, ОС МСВС – Ядро поддерживает работу в реальном времени – Оболочка обеспечивает стандартное пользовательское окружение, включая графические библиотеки и базы данных • Система программирования – Компиляторы, отладчики, анализаторы производительности – Высокопроизводительные библиотеки – Средства защищенного исполнения программ • Оптимизирующий двоичный транслятор Производительность на выделяемую мощность Сравнительная производительность микропроцессоров линии "Эльбрус" с зарубежными микропроцессорами в пересчете на выделяемую мощность Производительность на мощность (Мегафлопс/Ватт) 1200 1000 800 600 400 200 0 1C 4C Эльбрус 4C Эльбрус-4С Intel Core 2 Quad 2C 4C Intel Montecito 2C AMD IBM Power 6 Phenom Q 8C IBM-Sony Cell Типы микропроцессоров Эльбрус AMD Phenom Q Эльбрус-4С IBM Power 6 Intel Core 2 Quad IBM-Sony Cell Intel Montecito Превосходит зарубежные микропроцессоры Разновидности параллелизма в архитектуре «Эльбрус» • Параллелизм операций – Явный параллелизм, планируется при компиляции • Векторный параллелизм – Векторные операции на ширину аппаратных регистров • Параллелизм потоков управления – Когерентный доступ в память – Обеспечивается многопроцессорностью и многоядерностью в составе мощного сервера • Параллелизм слабо взаимодействующих задач – Обеспечивается объединением в сеть серверных узлов с сохранением когерентного доступа в память Параллелизм операций (1) Пример: исходный текст u = (a – c) – (b + c) – (c + d); x = (e – f); y = (a + b) + e; z = (a + b) + (a – c) + (e – (b – d)); Всего 36 операций a, b, c, d, e, f – операции считывания данных из памяти u, x, y, z – операции записи данных в память Параллелизм операций (2) Пример: исходный текст Представление в виде графа зависимостей u = (a – c) – (b + c) – (c + d); x = (e – f); y = (a + b) + e; z = (a + b) + (a – c) + (e – (b – d)); 36 операций Число операций в графе уменьшилось за счет оптимизирующего компилятора 5 e 12 – 17 x 6 1 f 2 a b 7 8 + 13 + 18 y 22 операции 15 – + 19 + 21 c 4 + 10 9 – 14 3 z d – 16 – 20 – 22 u Зависимости между операциями Критический путь 11 + Параллелизм операций (3) Представление в виде графа зависимостей 5 e 12 – 17 x 6 f 1 2 a b 7 8 + 13 18 + y 15 – + 19 + 21 z c 4 + 10 9 – 14 3 d – 11 + Параллельный код Эльбруса 1 5 11 17 21 2 6 12 18 22 3 4 7 8 9 10 13 14 15 16 19 20 16 – 20 – 22 5 тактов Каждая строка соответствует одной широкой команде, запускающей все операции в ней параллельно u Критический путь – 5 тактов Совпадает с критическим путем! Параллелизм операций (4) Последовательный код 1 3 8 2 9 16 4 11 20 22 5 6 12 17 7 13 18 15 10 14 19 21 Аппаратный Планировщик Intel x86 Параллельный код Intel Параллельный код Эльбруса 1 3 2 8 4 7 5 16 6 20 22 12 17 18 21 1 5 11 17 21 9 11 10 15 14 13 19 Код планируется компилятором по графу 5 12 e 6 1 a 2 7 + 8– 14 – 15 f – 17 x 13 + 18 22 такта 3 4 7 8 9 10 13 14 15 16 19 20 5 тактов 10 тактов В 2 раза быстрее Intel 2 6 12 18 22 y 19 + 21 z 3 b 9 + 16 22 d 10 + 20 4 c – – u – 11 + Параллелизм операций (5) Последовательный код 1 3 8 2 9 16 4 11 20 22 5 6 12 17 7 13 18 15 10 14 19 21 Аппаратный Планировщик Intel x86 Параллельный код Intel Параллельный код Эльбруса 1 3 2 8 4 7 5 16 6 20 22 12 17 18 21 1 5 11 17 21 9 11 10 15 14 13 19 10 тактов 3 4 7 8 9 10 13 14 15 16 19 20 5 тактов В 2 раза быстрее Intel Параллельный код Эльбруса Скрытый двоичный транслятор Выполняется быстрее Intel в 1,66 22 такта 2 6 12 18 22 1 5 11 19 22 18 3 2 4 6 7 8 9 10 12 13 14 15 16 20 17 21 6 тактов Список исполненных программ Приложения (1000+) Операционные системы (20+) Игры для DOS (600+) Программы для DOS (100+) - файловые менеджеры (nc, vc), архиваторы (rar, arj, zip), компиляторы (borland pascal, c, djgpp), антивирусы (dr.web, aidstest), базы данных, справочники, словари, переводчики, Мультимедиа просмотрщики (видео/картинки) Программы для Windows (200+) - Игры (Unreal, Diablo, Civilization, Quake, ... 100+), компиляторы (MS Visual Studio, Intel C++, ...), браузеры (IE, Mazilla, Opera, ...), графические редакторы (Paint, Photoshop, CorelDraw, ...), текстовые редакторы (10+), пакет MSOffice, мультимедиа просмотрщики (Аудио/Видео/Картинки 10+), программы работы с БД (Переводчики, Справочники, Энциклопедии 15+), тесты надежности и производительности (Sandra, Dr.Hard, CPU-Z,SpeedDisk 30+)- программы с высокой нагрузкой на вычислительные ресурс(MathCad, MathLab 15+) Программы для работы в linux (50+) - компиляторы и интерпретаторы языков программирования (gcc, ixx, ifort,perl, awk, pythiton, bash, ...), мультимедиа просмотрщики/редакторы (mplayer, qiv, ...), текстовые редакторы (vim, nedit, less, ...), Архиваторы (zip, ...), тестовые пакеты задач (x11.perf, spec92/95/2000/2006), файловые менеджеры (mc, ...) Программы для школы (18 позиций из 31 списка требуемых) звуковой редактор (CoolEdit), редакторы векторной и растровой графики (Photoshop, CorelDraw), программа для проведения видеомонтажа и сжатия видео файлов (Dr.DivX), редактор Webстраниц (AceHTML), клавиатурный тренажер (BabyType) и др. Windows - 95, 98, ME, 2000, NT, NT RUS, XP MS DOS, FreeDOS32 ОС МСВС 3.0 - Rev.11, Rev.13 Linux - Debian, Ubuntu 7.10 (Gutsy Gibbon), Ubuntu 8.04 LTS (Hardy Heron), ALT Linux Master 2.4 (LiveCD Installer), Gentoo 2004.3 (LiveCD Installer), Gentoo Linux 2006.0 (LiveCD Installer), Paragon Partition Manager (LiveCD), Knoppix 3.78 (CD), Knoppix MythTV (LiveCD), slaxpopcorn-5.1.8 (LiveCD), geexbox (LiveCD), womp-0.6beta, linVDR 0.5, PragmaLinux UNIX - FreeBSD 5.3 (LiveCD Installer), OpenBSD3.5-firewall, NetBSD, ИНТРОС 5.3 LynxOS QNX eCOS, eCOS/Scivoli, ZOG (eCOS+Forth) Menuet OS MIR OS RTEMS FortOS (4IM) Схемы переноса и исполнения программ на ВК «Эльбрус-3М» Коды C/C++ под Linux Дополнительные трудозатраты Затраты на перенос не нужны Перенос с адаптацией и отладкой Оптимизирующий компилятор и сборка Любые кодыIntel x86 Любые операционные системы Коды «Эльбрус» ВК Эльбрус-3М OS Linux Предельно быстрое исполнение Двоичный транслятор Исполнение быстрее, чем на Intel с той же тактовой частотой Защита данных массив, область стека дескриптор массива 3.14 смещение разм. | смещ. | адрес 4096 размер public | private | t | адрес 25 Теги данных разм. | смещ. | адрес дескриптор массива дескриптор объекта числовое значение типизированный объект public размер 31 разм. | смещ. | адрес 0 неинициализированные данные public | private | t | адрес адрес private смещение private размер