Сбор-разброс (векторная адресация)


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

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

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