Обзор современных процессорных архитектур

advertisement
Обзор современных
процессорных архитектур
Начало:
Архитектура фон Неймана



Принцип
программного
управления
Принцип
однородности
памяти
Принцип
адресуемости
памяти
Улучшения архитектуры
фон Неймана
Иерархия памяти
 Параллелизм на уровне команд


конвейер, суперскаляр / VLIW, SIMD
Исполнение команд вне порядка
 Повышение частоты

Рост длины конвейера
 RISC (microOps в CISC)


…
Улучшения архитектуры
фон Неймана
Иерархия памяти
 Параллелизм на уровне команд


конвейер, суперскаляр / VLIW, SIMD
Исполнение команд вне порядка
 Повышение частоты

Рост длины конвейера
 RISC (microOps в CISC)


…
В результате имеем…
Очень Сложное Ядро
Предел: 4 - 6 RISC-инструкций за такт
Очень Сложное Ядро

Как программировать? Просто…

Правильно использовать память
 Обработка
данных блоками
 Последовательный обход
 Кэш-буксование

Правильно сформировать
последовательность команд
 Компилятор
справится…
 Векторизовать
И появились проблемы:

Power Wall – барьер мощности


Memory Wall – барьер памяти


Память медленнее процессоров
Frequency Wall – барьер частоты


Процессоры греются
Транзисторы маленькие, процессоры большие
Complexity Wall – барьер сложности

Процессоры больше управляют вычислениями,
чем вычисляют
И появились проблемы:

Power Wall – барьер мощности


Memory Wall – барьер памяти


Память медленнее процессоров
Frequency Wall – барьер частоты


Процессоры греются
Транзисторы маленькие, процессоры большие
Complexity Wall – барьер сложности

Процессоры больше управляют вычислениями,
чем вычисляют
И появились проблемы:

Power Wall – барьер мощности


Memory Wall – барьер памяти


Память медленнее процессоров
Frequency Wall – барьер частоты


Процессоры греются
Транзисторы маленькие, процессоры большие
Complexity Wall – барьер сложности

Процессоры больше управляют вычислениями,
чем вычисляют
Усложнять и разгонять дальше некуда!
Решение проблем:
Многопоточность, Многоядерность
Решение проблем:
Многопоточность, Многоядерность

Intel Xeon X7460 2.66 GHz


Intel Xeon i7 975 XE 3.33 GHz


6 ядер
AMD Phenom X4 955 3.2 GHz


4 ядра, 2 потока на ядро
AMD Opteron 8435 2.6 GHz


6 ядер
4 ядра
IBM POWER6 5.0 GHz

2 ядра, 2 потока на ядро
Решение проблем:
Многопоточность, Многоядерность

Intel Xeon X7460 2.66 GHz


6 ядер
Intel Xeon i7 975 XE 3.33 GHz

4 ядра, 2 потока на ядро
L3: 16 MB
L2
L2
L2
0 1 2 3 4 5

AMD Opteron 8435 2.6 GHz


AMD Phenom X4 955 3.2 GHz


6 ядер
4 ядра
IBM POWER6 5.0 GHz

2 ядра, 2 потока на ядро
L3: 8 MB
L2 L2 L2 L2
0 1 2 3
Решение проблем:
Многопоточность, Многоядерность

Intel Xeon X7460 2.66 GHz


6 ядер
Intel Xeon i7 975 XE 3.33 GHz

4 ядра, 2 потока на ядро
L3: 6 MB
L2 L2 L2 L2 L2 L2
0 1 2 3 4 5

AMD Opteron 8435 2.6 GHz


AMD Phenom X4 955 3.2 GHz


6 ядер
4 ядра
IBM POWER6 5.0 GHz

2 ядра, 2 потока на ядро
L3: 6 MB
L2 L2 L2 L2
0 1 2 3
Решение проблем:
Многопоточность, Многоядерность

Intel Xeon X7460 2.66 GHz


Intel Xeon i7 975 XE 3.33 GHz


6 ядер
AMD Phenom X4 955 3.2 GHz


4 ядра, 2 потока на ядро
AMD Opteron 8435 2.6 GHz


6 ядер
4 ядра
IBM POWER6 5.0 GHz

2 ядра, 2 потока на ядро
L3: 32 MB
L2: 4MB L2: 4MB
0
1
Решение проблем:
Многопоточность, Многоядерность

Как программировать?

Можно просто запустить много задач…
Решение проблем:
Многопоточность, Многоядерность

Как программировать одну задачу?

Параллельное программирование с общей памятью
Процесс
Задачи:
• Совместное
использование
данных и ресурсов
потоками
• Синхронизация
потоков
Решение проблем:
Многопоточность, Многоядерность

Как программировать одну задачу?

Параллельное программирование с общей памятью
Процесс
Задачи:
• Совместное
использование
данных и ресурсов
потоками
• Синхронизация
потоков
Больше потоков –
больше нагрузка на
память!
Решение проблем:
Контроллер памяти на чипе
Core2
0
1
Core2
2
L2
3
L2
0
1
2
L2
L3
Core2 i7
3
L2
L3
Северный
мост
Память
Память
0
1
2
Core2 i7
3
0
1
2
3
L2 L2 L2 L2
L2 L2 L2 L2
L3
L3
Контроллер памяти
Контроллер памяти
Память
Память
Решение проблем:
Контроллер памяти на чипе
Core2
0
1
Core2
2
L2
3
L2
0
1
2
L2
L3
Core2 i7
3
L2
L3
Северный
мост
Память
0
1
2
Core2 i7
3
0
1
2
3
L2 L2 L2 L2
L2 L2 L2 L2
L3
L3
Контроллер памяти
Контроллер памяти
Память
Память
Память
Просто все работает быстрее!
Решение проблем:
Специализация ядер

Процессор Cell

PPE – ядро
общего
назначения

SPE –
векторные ядра

EIB – быстрая
асинхронная
шина
Решение проблем:
Специализация ядер

Процессор Cell – как программировать?
Разбить задачу на подзадачи для
вычисления на ядрах SPE
 Организовать передачу данных между
ядрами одновременно с вычислениями
 Векторизовать вычисления на ядрах SPE

Решение проблем:
Специализация ядер

Процессор Cell – как программировать?
Разбить задачу на подзадачи для
вычисления на ядрах SPE
 Организовать передачу данных между
ядрами одновременно с вычислениями
 Векторизовать вычисления на ядрах SPE

Сложно?
Решение проблем:
Специализация ядер

Процессор Cell – как программировать?

Есть средства для автоматизации создания
потоковых программ и программ с массовым
параллелизмом.
Решение проблем:
Специализация ядер

Roadrunner на базе Opteron и Cell

самый мощный суперкомпьютер
Решение проблем:
Специализация ядер

Roadrunner на базе Opteron и Cell

Почти самый «зеленый» суперкомпьютер
Решение проблем:
Специализация ядер

А почему только ядер?...

Есть и другие специальные
вычислители…
Решение проблем:
Графические ускорители

GPGPU – General-Purpose computing on
Graphics Processing Units
 Расширение
возможностей графического
конвейера для решения вычислительных задач
общего назначения
Решение проблем:
Графические ускорители
Решение проблем:
Графические ускорители

Как программировать?
Разбить задачу на большое число (сотни,
тысячи) одинаковых маленьких потоков.
 Использовать для хранения данных нужный
тип памяти, правильно к нему обращаться.



registers, local, shared, global, constant, texture
Только блоки из 8 потоков могут
взаимодействовать между собой.
Общая картина
Производительность «в среднем»
Универсальность
Специализация
Производительность на «специальных» задачах
Разработки завтрашнего дня:
GPGPU процессор: Intel Larrabee
Разработки будущего: 500 GHz

Исследования IBM:
Процессор с частотой 500 GHz
А они всё разгоняют…
Разработки будущего: 80 ядер

Исследования Intel:
 Процессор
Polaris
с 80 ядрами (1 TFLOP)
Разработки будущего: EDGE

University of Texas at Austin

EDGE – Explicit Data Graph Execution
Явное исполнение в соответствии с
графом зависимостей по данным
 До
16 команд за такт
 До 1024 команд в обработке
Разработки будущего: EDGE
Процессор TRIPS
(Tera-op, Reliable, Intelligently adaptive Processing System)
Разработки будущего: EDGE

Программа – последовательность
гиперблоков
 до

128 команд в гиперблоке
Подготовка кода для исполнения:
Download