Предложения ЗАО «МЦСТ» по разработке супер ЭВМ

advertisement
Особенности архитектуры
«Эльбрус»
Александр Ким, Владимир Волконский
ЗАО «МЦСТ» & ОАО «ИНЭУМ им. И.С.Брука»
Научная конференция «Высокопроизводительные вычисления в науке и образовании»
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, ОС МСВС
– Наличие развитых средств разработки программ
• Высокая логическая скорость при экономном
потреблении энергии
• Полный диапазон применения
– настольные компьютеры, серверы, суперкомпьютеры
• Платформа для создание безопасных систем
• Низкая стоимость при массовом производстве
СПАСИБО!
Контакты авторов: kim@mcst.ru, vol@mcst.ru
Состав ОПО «Эльбрус»
• Операционные системы
– 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
размер
Download