Tengo un vector de columna A que tiene 10 elementos. Tengo una matriz B que es 10 por 10. El almacenamiento de memoria para B es columna principal. Me gustaría sobrescribir la primera fila en B con el vector columna A.¿Hay una versión estándar, strided de memcpy?
Claramente, lo que puedo hacer:
for (int i=0; i < 10; i++)
{
B[0 + 10 * i] = A[i];
}
donde he dejado el cero en 0 + 10 * i
destacar que utiliza la columna B -mayor almacenamiento (cero es el índice de la fila).
Después de algunas travesuras en CUDA-land esta noche, tuve la idea de que podría haber una función de CPU para realizar una memcpy con estrías? Supongo que en un nivel bajo, el rendimiento dependerá de la existencia de una instrucción de carga/almacenamiento con strided, que no recuerdo que haya en el ensamblaje x86.
quizás debería considerar cambiar la estrategia de almacenamiento para esta matriz, o almacenar su transposición. –