Загрузка удваивается, которые одинаково распределены в памяти, используя встроенные данные Intel? - PullRequest
0 голосов
/ 24 марта 2020

Есть ли intrinsi c, как _mm256_load_pd, который загружает double, одинаково распределенные в памяти?

По сути, я пытаюсь загрузить векторы столбцов матрицы вместо векторов строк.

1 Ответ

1 голос
/ 24 марта 2020

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

Самое простое, что можно сделать, это просто что-то вроде:

__m256d data;
for(int i = 0; i < 4; i++)
{
   data[i] = myarray[/* some index derived from i*/]
}
...