У меня есть вектор-столбец A, длина которого составляет 10 элементов. У меня есть матрица B, которая составляет 10 на 10. Хранилище памяти для B является основным столбцом. Я бы хотел перезаписать первую строку в B с вектором столбца A.
Ясно, что я могу сделать:
for ( int i=0; i < 10; i++ )
{
B[0 + 10 * i] = A[i];
}
где я оставил нуль в 0 + 10 * i
, чтобы выделить, что B использует хранилище столбцов (ноль - индекс строки).
После некоторых махинаций в CUDA-land сегодня вечером у меня возникла мысль, что может быть функция ЦП для выполнения перемещенного memcpy?? Я думаю, что на низком уровне производительность будет зависеть от существования команды strided load/store, о которой я не помню, что она была в сборке x86?