Gather-scatter (векторная адресация)


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из Scatter gather (векторная адресация) )
Перейти к навигации Перейти к поиску

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

Определения

Собирать

Малонаселенный вектор держит непустые элементы может быть представлены два густонаселенными векторами длины ; содержащий непустые элементы и указание индекса, в котором расположен элемент. Совокупность в , обозначенная , назначается с уже вычисленным. [1] Предполагая отсутствие псевдонимов указателя между x [], y [], idx [], реализация C является

для  ( я  =  0 ;  я  <  N ;  ++ я )  х [ я ]  =  у [ idx [ я ]];

Разброс

Обозначенный разреженный разброс представляет собой обратную операцию. Он копирует значения в соответствующие места в малонаселенном векторе , т . Е.

для  ( i  =  0 ;  i  <  N ;  ++ i )  y [ idx [ i ]]  =  x [ i ];

Смотрите также

использованная литература