Пример вычислений с помощью систолического процессора
Организацию вычислительного процесса в систолических массивах различной конфигурации с использованием ПЭ, функциональная схема которого показана на рис. 29.19, удобнее всего пояснить на примере умножения матрицы на вектор Х={х1,х2,...,хn}.
Рис.29.19. Функциональная схема процессорного элемента систолической матрицы
Элементы вектора произведения Y = {у1,у 2,..., уn} могут быть получены периодически повторяющимися операциями
где k — номер шага вычислений.
Пусть имеется матрица А размером пхп с шириной полосы ненулевых элементов р + q- 1= 4. Схема умножения вектора на матрицу в этом случае представлена на рис. 29. 20.
Рис.29.20. Схема умножения вектора на матрицу
Определенная выше последовательность операций для вычисления компонентов вектора Y может быть получена за счет конвейерного прохождения хi и yi, через р + q - 1 последовательно соединенных ПЭ (рис. 29.21)
Рис.29.21. Организация вычисления в линейной систолической структуре
Компоненты yi(i = 1,..., п) вектора Y, имеющие в начальный момент нулевое значение, поступают на вход массива и продвигаются через ПЭ справа налево, в то время как компоненты вектора X движутся слева направо. Элементы матрицы в порядке, указанном на рисунке, вводятся в ПЭ сверху вниз. Промежуточные результаты уi(k) накапливаются по мере продвижения от одного ПЭ к другому.
В табл. 29.1 показаны первые 6 шагов алгоритма умножения для рассматриваемой структуры.
Таблица 29.1. Последовательность умножения матрицы на вектор в систолической ВС
Шаг | Состояние | Комментарий | |||
ПЭ1 | ПЭ2 | ПЭ3 | ПЭ4 | ||
0 |
|
|
| y1
| Элемент y1 поступил в ПЭ4 поступил в ПЭ4 |
1 | x1 |
| y1 |
| Элемент x1 поступил в ПЭ1, элемент yi движется влево |
2 |
| y1 a11 x1 |
| y2
| Элемент а11 поступил в ПЭ2, у1= у1+ а11*х1, то есть у1=а11+х1 |
3 | y1 a12 x2 |
| y2 a21 x1 |
| Элемент а12 поступил в ПЭ1, а21 — в ПЭ3, у1= а11* х1+а12*х2, у2=а21*х1 |
4 |
| y2 a22 x2 |
| y3 a31 x1 | Элемент у1 вышел из ПЭ1, у1= а21* х1+а22*х2, у3=а31*х1 |
5 | y2 a23 x3 |
| y3 a32 x2 |
| у2= а21* х1+а22*х2 +а23*х3 у3=а31*х1+а32*х2 |
6 |
| y3 a33 x3 |
| y4 a42 x2 | Элемент у2 вышел из ПЭ1, у4 = а42 * х2, уз = а31*х1 + а32*х2 +а33*х3 |
Заметим, что при такой организации вычислительного процесса для каждого ПЭ такты выполнения операции чередуются с тактами простоя. Таким образом, в каждый момент времени активны только процессорных элементов, следовательно, каждый выходной результат формируется за два такта. Для вычисления всех п элементов выходного вектора Y необходимо 2п + р + q - 1 тактов.
- 29. Вычислительные системы класса simd
- Векторные и векторно-конвейерные вычислительные системы
- Понятие вектора и размещение данных в памяти
- Понятие векторного процессора
- Структура векторного процессора
- Ускорение вычислений
- Матричные вычислительные системы
- Массив процессоров
- Структура процессорного элемента
- Подключение и отключение процессорных элементов
- Сети взаимосвязей процессорных элементов
- Ассоциативные вычислительные системы
- Вычислительные системы с систолической структурой
- Классификация систолических структур
- Топология систолических структур
- Пример вычислений с помощью систолического процессора
- Вычислительные системы с командными словами сверхбольшой длины (vliw)