¿Tiene gcc pragma de alineación de memoria, similar a #pragma vector aligned
en el compilador de Intel? Me gustaría decirle al compilador que optimice un bucle particular utilizando cargas alineadas/instrucciones de la tienda. para evitar posibles confusiones, no se trata de una estructura de embalaje.alineación de memoria de gcc pragma
por ejemplo:
#if defined (__INTEL_COMPILER)
#pragma vector aligned
#endif
for (int a = 0; a < int(N); ++a) {
q10 += Ix(a,0,0)*Iy(a,1,1)*Iz(a,0,0);
q11 += Ix(a,0,0)*Iy(a,0,1)*Iz(a,1,0);
q12 += Ix(a,0,0)*Iy(a,0,0)*Iz(a,0,1);
q13 += Ix(a,1,0)*Iy(a,0,0)*Iz(a,0,1);
q14 += Ix(a,0,0)*Iy(a,1,0)*Iz(a,0,1);
q15 += Ix(a,0,0)*Iy(a,0,0)*Iz(a,1,1);
}
Gracias
ninguno. Tengo una matriz que el compilador no puede determinar la alineación. Tengo que decir específicamente que use carga y almacenamiento alineados. no será una opción del compilador, debe ser pragma, para cada ciclo individual que se vectorizará. – Anycorn
¿Por qué no puedes usar un atributo variable en la matriz? –
matriz está malloced, además de estructura de matriz es bastante complicado. Específicamente, es un tensor de cuatro dimensiones – Anycorn