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

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

Определения [ править ]

Собрать [ править ]

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

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

Scatter [ править ]

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

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

См. Также [ править ]

Ссылки [ править ]