Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обработка длинных векторов и матриц




 

Аппаратура векторных процессоров типа “регистр-регистр» ориентирова- на на обработку векторов, длина которых совпадает с длиной векторных реги- стров (ВР), поэтому обработка коротких векторов не вызывает проблем – дос-таточно записать фактическую длину вектора в регистр длины вектора.

Если размер векторов превышает емкость ВР, используется техника раз-биения исходного вектора на сегменты одинаковой длины, совпадающей с ем-костью векторных регистров (последний сегмент может быть короче), и после-довательной обработки полученных сегментов. В английском языке этот прием называется strip-mining. Процесс разбиения обычно происходит на стадии ком-пиляции, но в ряде ВП данная процедура производится по ходу вычислений с помощью аппаратных средств на основе информации, хранящейся в регистре максимальной длины вектора.

 

Ускорение вычислений

 

Для повышения скорости обработки векторов все функциональные бло- ки векторных процессоров строятся по конвейерной схеме, причем так, чтобы каждая ступень любого из конвейеров справлялась со своей операцией за один такт (число ступеней в разных функциональных блоках может быть различным). С этой целью в некоторых векторных ВС (например, Cray C90) конвейеры во всех функциональных блоках продублированы (рис. 7.8).

 

Рис. 7.8. Выполнение векторных операций при двух конвейерах

 

На конвейер 0 всегда подаются элементы векторов с четными номерами, а на конвейер 1 – с нечетными. В начальный момент на первую ступень кон- вейера 0 из ВР V1 и V2 поступают нулевые элементы векторов. Одновременно первые элементы векторов из этих регистров подаются на первую ступень кон-вейера 1. На следующем такте на конвейер 0 подаются вторые элементы из V1 и V2, а на конвейер 1 – третьи элементы и т.д. Аналогично происходит рас-пределение результатов в выходном векторном регистре V3. В итоге функцио-нальный блок при максимальной загрузке в каждом такте выдает не один ре-зультат, а два. В скалярных операциях работает только конвейер 0.

Интересной особенностью некоторых ВП типа «регистр-регистр» (напри-мер, ВС фирмы Cray Research Inc.) является сцепление векторов (vector chaining или vector linking), когда ВР результата одной векторной операции использует- ся в качестве входного регистра для последующей векторной операции. Для примера рассмотрим последовательность из двух векторных команд, предпола-гая, что длина векторов равна 64: V 2 = V 0× V 1, V 4 = V 2 + V 3.

Результат первой команды служит операндом для второй. Первая вектор-ная команда должна послать в конвейерный умножитель до 64 пар чисел. Примерно в середине выполнения команды складывается ситуация, когда не-сколько начальных элементов вектора V 2 будут уже содержать недавно вы-численные произведения; часть элементов V 2 все еще будет находиться в кон-вейере, а оставшиеся элементы операндов V 0 и V 1 еще остаются во входных векторных регистрах, ожидая загрузки в конвейер. Такая ситуация показана на рис. 7.9, где элементы векторов V 0 и V 1, находящиеся в конвейерном умно- жителе, имеют темную закраску. В этот момент система извлекает элементы

 

Рис. 7.9. Сцепление векторов

 

V 0[ k ] и V 1[ k ] с тем, чтобы направить их на первую ступень конвейера, в то время как V 2[ j ] покидает конвейер. Сцепление векторов иллюстрирует линия, обозначенная звездочкой. Одновременно с занесением V 2[ j ] в ВР этот элемент направляется и в конвейерный сумматор, куда также подается и элемент V 3[ j ]. Как видно из рисунка, выполнение второй команды может начаться до завер-шения первой, и поскольку одновременно выполняются две команды, процес- сор формирует два результата за цикл (V 4[ i ] и V 2[ j ]) вместо одного. Без сцеп- ления векторов пиковая производительность Cray-1 была бы 80 MFLOPS (один полный конвейер производит результат каждые 12,5 нс). При сцеплении трех конвейеров теоретический пик производительности – 240 MFLOPS. В принци- пе сцепление векторов можно реализовать и в векторных процессорах типа «память-память», но для этого необходимо повысить пропускную способность памяти. Без сцепления необходимы три «канала»: два для входных потоков операндов и один – для потока результата. При использовании сцепления тре-буется обеспечить пять каналов: три входных и два выходных.

С середины 90-х годов прошлого века векторно-конвейерные ВС стали уступать свои позиции другим более технологичным видам систем. Тем не ме- нее одна из последних разработок корпорации NEC (2002 год) – вычислитель- ная система «Модель Земли» (The Earth Simulator), – являющаяся на сегодняш- ний момент самой производительной вычислительной системой в классе, по сути представляет собой векторно-конвейерную ВС. Система включает в себя 640 вычислительных узлов по 8 векторных процессоров в каждом. Пиковая производительность суперкомпьютера превышает 40 TFLOPS.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...