Foro de Ayuda IntercambiosvirtualeS

Foro de Ayuda IntercambiosvirtualeS (https://www.intercambiosos.org/index.php)
-   Programación (https://www.intercambiosos.org/forumdisplay.php?f=45)
-   -   Alinear Matrices en C [Problema] (https://www.intercambiosos.org/showthread.php?t=35336)

c.uent 18-jun-2013 21:59

Alinear Matrices en C [AYUDA]
 
Que tal saludos.

Estoy realizando una aplicacion con threads y extenciones SSE(SIMD) en C.

Creo matrices de la siguiente manera:
Código:

float ** nuevaMatriz(int x,int y){
        int i;
        float __attribute__ ((aligned(16))) **m;
        m=malloc(sizeof(int *)*x);       
        for(i=0;i<x;i++)
            m[i]=malloc(sizeof(int)*y);
        return m;         
}

Y al momento de usar SSE, hago lo siguiente (Lo que hago en esa linea es simplemente mandar una fila de la matriz es lo que contiene v_1):
Código:

__m128 v1=_mm_load_ps(&v_1[k]);
El problema es que me da un SEGMETACION FAULT, y esto se debe; que al momento de crear la matriz no me estoy asegurando de que estos datos estén alineados.

Usando SSE esto se soluciona de la siguiente manera:
Código:

__m128 v1=_mm_loadu_ps(&v_1[k]);
Al agregar "u" al load le digo que no estoy seguro que los datos están o no alineados, entonces los alinea.
Pero quiero saber como puedo alinear los datos al momento de inicializar la matriz con malloc.

Gracias


La franja horaria es GMT -4. Ahora son las 13:23.

Desarrollado por: vBulletin® Versión 3.8.1
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.

Ad Management by RedTyger