Новосибирский государственный университет

Факультет информационных технологий

ICT SBRAS

Словарь терминов в коллекции "Вычислительные системы"

Векторные вычислительные системы

Синонимы: векторные вычислительные системы; векторный процессор; векторно-конвейерные вычислительные системы; конвейерные вычислительные системы;

Векторные вычислительные системы - системы класса SIMD, в которых одна и та же заданная операция выполняется сразу над всеми компонентами векторов.

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

В средствах векторной обработки под вектором понимается одномерный массив данных (обычно в форме с плавающей запятой), размещенных в памяти ВС. Количество элементов массива называется длиной вектора. Многомерные массивы считаются наборами одномерных массивов-векторов.
Действия над многомерными массивами учитывают специфику их размещения. Способ размещения многомерного массива влияет на шаг изменения адреса элемента, выбираемого из памяти. Так, если матрица расположена в памяти построчно, адреса соседних элементов строки различаются на единицу, а для элементов столбца шаг равен четырем. При размещении матрицы по столбцам единице будет равен шаг по столбцу, а четырем - шаг по строке. В векторной концепции для обозначения шага, с которым элементы вектора извлекаются из памяти, применяют термин шаг по индексу (stride).

Понятие векторного процессора

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

В архитектуре средств векторной обработки используется один из двух подходов - векторно-параллельный или векторно-конвейерный.
В векторно-параллельном процессоре одновременные операции над элементами векторов проводятся с помощью нескольких функциональных блоков (ФБ) с плавающей запятой, каждый из которых отвечает за одну пару элементов.
В векторно-конвейерном варианте обработка элементов векторов производится одним конвейерным ФБ. Операции с числами в форме с ПЗ достаточно сложны, но поддаются разбиению на отдельные шаги. Каждый этап обработки может быть реализован с помощью отдельной ступени конвейерного ФБ. Очередная пара элементов векторов-операндов подается на вход конвейера как только освобождается его первая ступень.
Одновременные операции над элементами векторов можно проводить и с помощью нескольких конвейерных ФБ. Такого рода обработка совмещает векторно-параллельный и векторно-конвейерный подходы.

Архитектуры векторной обработки «память-память» и «регистр-регистр»

Принципиальным моментом в архитектуре векторных процессоров является способ доступа к операндам, поскольку векторы-операнды хранятся в памяти ВС и туда же помещается вектор-результат. Для известных векторных ВС можно выделить два варианта архитектуры векторной обработки, известные как «память-память» и «регистр-регистр».
В векторных процессорах с архитектурой «память-память» элементы векторов поочередно извлекаются из памяти и сразу же направляются в функциональный блок. По мере обработки элементы вектора результата, появляющиеся на выходе ФБ, сразу же заносятся в память.
В архитектуре «регистр-регистр» операнды сначала загружаются из памяти в векторные регистры. Векторный регистр представляет собой совокупность скалярных регистров, объединенных в очередь типа FIFO, способную хранить 50-100 чисел с плавающей запятой (чаще всего - 64). Операция выполняется над векторами, размещенными в векторных регистрах операндов, а ее результат сначала заносится в векторный регистр результата, а уже из него переписывается в память.
В обеих структурах необходимо обеспечить требуемую последовательность извлечения элементов векторов-операндов из памяти и занесения элементов вектора-результата в память. Эта задача в векторном процессоре реализуется с помощью генератора адресов, на выходе которого формируется адрес очередного элемента вектора в памяти. Изначально на вход генератора подается базовый адрес - начальный адрес области памяти, хранящей элементы вектора. Очередной адрес вычисляется путем увеличения предыдущего адреса на величину шага по индексу.

Для доступа к структурированным данным в памяти (массивам, векторам), в которых элементы с последовательно возрастающими индексами размещаются в ячейках с последовательно возрастающими адресами, память выгоднее строить как блочную с расслоением. В этом случае адреса ячеек чередуются по циклической схеме (следующий адрес - в следующем банке памяти). Такой прием позволяет почти параллельно читать (записывать) элементы векторов в обеих архитектурах.

Преимущество векторных процессоров «память-память» состоит в возможности обработки длинных векторов, в то время как в процессорах «регистр-регистр» приходится разбивать длинные векторы на сегменты фиксированной длины. К сожалению, за гибкость режима «память-память» приходится расплачиваться относительно большими издержками, известными как время запуска, представляющее собой временной интервал между инициализацией команды и моментом, когда первый результат появится на выходе конвейера. Большое время запуска в процессорах «память-память» обусловлено скоростью доступа к памяти, которая намного меньше скорости доступа к внутреннему регистру. Однако когда конвейер заполнен, результат формируется в каждом цикле. Модель времени работы векторного процессора (ВП) имеет вид:

T = s+α×N,
где s - время запуска, α - константа, зависящая от команды (обычно 1/2, 1 или 2) и N - длина вектора.

Архитектура «память-память» реализована в вычислительных системах Advanced Scientific Computer фирмы Texas Instruments Inc., семействе вычислительных систем фирмы Control Data Corporation, прежде всего Star 100, серии Cyber 200 и ВС типа ЕТА-10. Все эти вычислительные системы появились в середине 70-х прошлого века после длительного цикла разработки, но к середине 80-х годов от них отказались. Причиной послужило слишком большое время запуска - порядка 100 циклов процессора. Это означает, что операции с короткими векторами выполняются очень неэффективно, и даже при длине векторов в 100 элементов процессор достигал только половины потенциальной производительности.

В вычислительных системах «регистр-регистр» векторы имеют сравнительно небольшую длину (в ВС семейства Cray - 64), но время запуска значительно меньше, чем в случае «память-память». Этот тип векторных систем гораздо более эффективен при обработке коротких векторов, но при операциях над длинными векторами векторные регистры должны загружаться сегментами несколько раз. В настоящее время ВП «регистр-регистр» доминируют на компьютерном рынке. Это вычислительные системы фирмы Cray Research Inc., а также векторные ВС фирм Fujitsu, Hitachi и NEC, например NEC SX-8R (2006). Время цикла в современных ВП составляет порядка 2-2,5 нс.

Структура векторной вычислительной системы

В реальных задачах векторная обработка составляет только часть общей вычислительной нагрузки. Значительный вес имеют и скалярные операции. По этой причине векторная ВС, помимо векторного процессора, содержит еще и скалярный процессор. Как и положено для SIMD-системы, выполняется единая программа, содержащая как скалярные, так и векторные команды. Программа и данные хранятся в памяти ВС. Команды программы последовательно выбираются из памяти процессором обработки команд, который направляет скалярные и векторные команды в скалярный или векторный процессор соответственно.

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

Интересной особенностью некоторых ВП типа «регистр-регистр», например ВС фирмы Cray Research Inc., является так называемое зацепление векторов (vector chaining или vector linking), когда векторный регистр результата одной векторной операции используется в качестве входного регистра для последующей векторной операции. Такая комбинация из последовательности умножения и суммирования характерна для операции свертки и встречается во многих векторных и матричных вычислениях. Сущность зацепления векторов в том, что исполнение векторной команды начинается сразу, как только образуются компоненты участвующих в ней векторных операндов, не дожидаясь завершения вычисления полного вектора операнда и занесения его в соответствующий векторный регистр. Образуются цепочки операций.

С середины 90-х годов прошлого века векторные ВС стали уступать свои позиции другим более техно¬логичным видам систем. Тем не менее одна из последних разработок корпорации NEC (2007 год) - вычислительная система SX-9 - по сути представляет собой векторно-конвейерную ВС. Пиковая производительность системы с 16 ядрами составляет 26,2 TFLOPS (триллионов операций с плавающей запятой в секунду).

Ключевые термины, связанные с термином "векторные вычислительные системы":

  1. Cray-1
  2. Cray Research Inc.
  3. CYBER
  4. STAR-100
  5. Матричные вычислительные системы
  6. Параллельные векторные системы
  7. СЭСМ

Ссылки на персон:

  1. Рабинович Зиновий Львович

Ключевые термины:  архитектура вычислительной машины;   классификация флинна;   simd-архитектура;   flops;


Контекстный поиск: Задайте образец для поиска:
    

|Список основных тем курса|
   
Федотова Ольга
[SBRAS]

НГУ
ФИТ НГУ
ИВТ СО РАН
© 2012-2024, Новосибирский государственный университет, Новосибирск
© 2004-2024, Институт вычислительных технологий СО РАН, Новосибирск
© 2004-2024, Федотов А.М.
    Дата последней модификации: 02.12.2013