Векторные процессоры и Cray-2

Содержание

Слайд 2

Векторный процессор Векторный процессор — это процессор, в котором операндами некоторых

Векторный процессор

Векторный процессор — это процессор, в котором операндами некоторых команд

могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени.
Слайд 3

Иллюстрация скалярной обработки Простой пример попарного сложения двух наборов по 10

Иллюстрация скалярной обработки

Простой пример попарного сложения двух наборов по 10 чисел.

При "обычном" программировании используется цикл, который берёт пары чисел последовательно, и складывает их:

Повторить цикл 10 раз
прочитать следующую инструкцию и декодировать
получить первое слагаемое
получить второе слагаемое
сложить
сохранить результат
конец цикла

Слайд 4

Иллюстрация векторной обработки прочитать следующую инструкцию и декодировать получить 10 первых

Иллюстрация векторной обработки

прочитать следующую инструкцию и декодировать
получить 10 первых

слагаемых
получить 10 вторых слагаемых
сложить
сохранить результат

Таким образом, математические операции выполняются гораздо быстрее, основным ограничивающим фактором становится время, необходимое для извлечения данных из памяти.

Слайд 5

Размещение в памяти матрицы 4x4 Размещение в памяти по строкам Размещение

Размещение в памяти матрицы 4x4

Размещение в памяти по строкам

Размещение

в памяти по столбцам

Перемещение по строке (шаг по индексу =1)

Перемещение по столбцам (шаг по индексу =4)

Перемещение по строке (шаг по индексу =4)

Перемещение по столбцам (шаг по индексу =1)

Слайд 6

Векторный процессор (векторно-параллельная обработка) Векторно-параллельный процессор. Используется n операционных блоков Память

Векторный процессор (векторно-параллельная обработка)

Векторно-параллельный процессор. Используется n операционных
блоков

Память

a0

a1

an-1

b0

b1

bn-1

c0

c1

Cn-1

C=A+B
A=(a0, a1,…an-1)
B=(b0, b1,

… bn-1)
Операнды – массивы данных

Векторно-параллельные системы – несколько Floating point EU.
Векторно-конвейерные – один Floating point EU.

Слайд 7

Векторный процессор (векторно-конвейерная обработка) Память a0 a1 an-1 b0 b1 bn-1

Векторный процессор (векторно-конвейерная обработка)

Память

a0

a1

an-1

b0

b1

bn-1

c0

c1

Cn-1

a0,b0

Память

a0

a1

an-1

b0

b1

bn-1

c0

c1

Cn-1

a1,b1

a0,b0

Память

a0

a1

an-1

b0

b1

bn-1

c0

c1

Cn-1

a2,b2

a1,b1

b2

a2

a3b3

Используется один конвейерный блок для выполнения операций с

плавающей запятой

t

t+1

t+2

c0

Слайд 8

Параллельная обработка несколькими конвейерными устройствами + а11 b11 a12 b12 a13

Параллельная обработка несколькими конвейерными устройствами

+

а11 b11 a12 b12 a13 b13

a14 b14

а21 b21 a22 b22 a23 b23 a24 b24

а31 b31 a32 b32 a33 b33 a34 b34

а41 b41 a42 b42 a43 b43 a44 b44

Это наиболее распространенные системы

c0

c1

c2

c3

Слайд 9

Векторная обработка память-память Элементы векторов поочередно вызываются из памяти и срaзу

Векторная обработка память-память

Элементы векторов поочередно вызываются из памяти и срaзу направляются

на EU. Результаты, появляющиеся на выходе, сразу же заносятся в память.

v0

v1

v3

v7

a0

b0

c0

Vector register

Memory with interleaving

Слайд 10

Векторная обработка регистр-регистр Операнды снaчала загружаются из памяти в векторные регистры

Векторная обработка регистр-регистр

Операнды снaчала загружаются из памяти в векторные регистры (v-registers).

V-register – группа скалярных регистров, объединенных в очередь типа FIFO. Хранит 500 – 100 FP-чисел (часто 64).
Операция выполняется над векторами, находящимися в v-регистрах. Результат заносится в v-регистр.
Преимущества векторных процессоров типа “память-память” – возможность обработки длинных векторов. Недостаток – интервал между инициализацией команды и появлением первого результата на выходе EU (время запуска).
Время работы T= s + α×N s – время запуска, α - константа, зависящая от команды (1/2, 1, 2) N – длина вектора
В современных системах доминирует обработка “регистр - регистр”.
Слайд 11

Регистр максимальной длины вектора Регистр максимальной длины вектора фиксирует максимальное число

Регистр максимальной длины вектора

Регистр максимальной длины вектора фиксирует максимальное число элементов

вектора, которое может быть одновременно обработано аппаратурой процессора.
Этот регистр используется при разделении очень длинных векторов на сегменты, длина которых соответствует максимальному числу элементов, обрабатываемых аппаратурой за один прием.
Слайд 12

Регистр маски Регистр маски используется при выполнении операций, в которых должны

Регистр маски

Регистр маски используется при выполнении операций, в которых должны участвовать

не все элементы векторов.
В регистре маски каждому элементу вектора соответствует один бит.
В операции участвуют только те элементы, бит маски которых установлен в единицу.
Бит маски обеспечивает условие участия соответствующего элемента вектора в операции .
Этот регистр используется также в операциях уплотнения/развертывания (compress/expand).
Compress – незамаскированные элементы вектора из вектора-источника размещаются в регистре-приемнике.
Expand - из регистра-источника размещаются в незамаскированные элементы вектора-приемнике
Слайд 13

Операции уплотнения / развертывания Уплотнение/Развертывание

Операции уплотнения / развертывания

Уплотнение/Развертывание

Слайд 14

Регистр вектора индексов Элементы векторов в памяти расположены регулярно. Для адресации

Регистр вектора индексов

Элементы векторов в памяти расположены регулярно. Для адресации используется

значение шага по индексу.
Если вектор нужно сформировать из нерегулярных элементов (расположенных в другом порядке) используется регистр вектора индексов.
Элемент с номером i содержит индекс той позиции v-регистра, куда нужно поместить i-й элемент исходного массива.

Example 1: for (i=0; iK and M – index vector registers

Слайд 15

Операции упаковки/распаковки K[i] M[i]

Операции упаковки/распаковки

K[i]

M[i]

Слайд 16

Примеры векторно-конвейерных систем Типичным представителем векторно-конвейерных систем является суперкомпьютер Сгау-1 и

Примеры векторно-конвейерных систем

Типичным представителем векторно-конвейерных систем является суперкомпьютер Сгау-1 и Cray-2.
Примером

более современных векторно-конвейерных вычислительных систем является разработанный в начале 1990-х годов в той же фирме суперкомпьютер Cray T90.
Вычислительная систему Earth Simulator компании NEC.
Слайд 17

Cray 2 Cray-2 — векторный суперкомпьютер, выпускавшийся компанией Cray Research с

Cray 2

Cray-2 — векторный суперкомпьютер, выпускавшийся компанией Cray Research с 1985

года. Он был самым производительным компьютером своего времени, обогнав по производительности другой суперкомпьютер, Cray X-MP. Пиковая производительность Cray-2 составляла 1,9 Гфлопс. Только в 1990 году этот рекорд был побит суперкомпьютером ETA-10G.
Слайд 18

История Cray 2 Сеймур Крэй приступил к созданию нового суперкомпьютера —

История Cray 2

Сеймур Крэй приступил к созданию нового суперкомпьютера — Cray-2

— ещё до окончания доводки предыдущей модели — Cray-1, то есть примерно в 1976 году.
В 1981 году Сеймур Крэй внес радикальное предложение по конструкции Cray-2. Он предложил поместить весь компьютер в инертную жидкость под названием Fluorinert (англ.) компании 3M
Cray-2 был представлен публике в 1985 году.
Слайд 19

Характеристики Процессор: 2 или 4 векторных процессора Элементная база: ИС с

Характеристики

Процессор: 2 или 4 векторных процессора
Элементная база: ИС с 16 логическими вентилями, эмиттерно-связанная логика на биполярных транзисторах
Время такта:

4.1 наносекунды
Объём памяти: 256 миллион 64-разрядных слов
Охлаждение: жидкостное, с полным погружением
Операционная система: UNIX-подобная Unix и Cray Operating System
ПО: два компилятора языка Fortran: CFT2 и CFT77 с автоматической векторизацией кода, компилятор языка C, макро-ассемблер CAL, утилиты и библиотеки для работы с устройствами ввода-вывода и организации исполнения задач
Энергопотребление: 195 кВт
Габариты: высота — 114.3 см, диаметр — 134.6 см, 14 вертикальных колонн-стоек, собранных в дугу длиной 300 градусов
Слайд 20

Использование Летом 1985 года первый экземпляр был поставлен в Ливерморскую национальную

Использование

Летом 1985 года первый экземпляр был поставлен в Ливерморскую национальную лабораторию
Cray-2 использовался

в NASA
Исследования в области энергетики
Атмосферные и океанические исследования
Квантовая химия
Искусственный интеллект
Генная инженерия
Молекулярная динамика
Разработка технологического процесса
Слайд 21

Программное обеспечение Cray-2 OS основывается на проверенной UNIX System V. Cray-2

Программное обеспечение

Cray-2 OS основывается на проверенной UNIX System V.
Cray-2 предоставляет 2

Fortran компилятора: CFT v.2 и CFT77
Научная библиотека подпрограмм оптимизирована для Cray-2
Многозадачная библиотека позволяет пользователю разбиение приложения на параллельно выполняемые задачи
Широкий выбор системных утилит для поддержки интерактивной и пакетной обработки
Компилятор языка С, который обеспечивает поддержку системного программного обеспечения, написанного на языке C
CAL, макроассемблер CRAY, обеспечивает доступ ко всем CRAY-2 инструкциям