A quien corresponda:
En este ejercicio a que se refiere con la solución vista en el teórico? Además, en esta parte no se puede perder el acceso coalesced de lectura y escritura sobre la memoria global? Nosotros logramos implementarlo leyendo una fila del tile que se corresponde con una fila de la matriz original y escribiendo en las columnas de la imagen de salida, por lo que perdemos la escritura coalesced. ¿Es esta la idea?
Saludos,
Mauricio
En respuesta a Mauricio Vanzulli
Re: Duda práctico 4 ejericico 1 parte c) iii)
de Ernesto Dufrechou -
Hola Mauricio,
por equivocación hice referencia al teórico en relación a la optimización para evitar los conflictos de bancos en la parte c-iii del ejercicio 1.
En realidad dicha optimización se explica en la sección 9.2.3.3. (Shared Memory in Matrix Multiplication (C=AAT)) de la Cuda C Best Practices Guide.
La optimización consiste en reservar la zona de memoria compartida de forma que la cantidad de columnas no sea múltiplo de la cantidad de bancos. De esta forma, los elementos almacenados en una misma columna del tile en memoria compartida se asignan a bancos distintos.
Saludos!
por equivocación hice referencia al teórico en relación a la optimización para evitar los conflictos de bancos en la parte c-iii del ejercicio 1.
En realidad dicha optimización se explica en la sección 9.2.3.3. (Shared Memory in Matrix Multiplication (C=AAT)) de la Cuda C Best Practices Guide.
La optimización consiste en reservar la zona de memoria compartida de forma que la cantidad de columnas no sea múltiplo de la cantidad de bancos. De esta forma, los elementos almacenados en una misma columna del tile en memoria compartida se asignan a bancos distintos.
Saludos!
En respuesta a Ernesto Dufrechou
Re: Duda práctico 4 ejericico 1 parte c) iii)
Hola,
La optimización tiene que lograr 100% de shared_efficiency?
En nuestra implementación, considerando que la cantidad de columnas de la zona reservada para shared memory no sea múltiplo de la cantidad de bancos, logramos una eficiencia de 66.6% (vs. 6.06% sin optimizar), es suficiente?
Muchas gracias,
Saludos.
La optimización tiene que lograr 100% de shared_efficiency?
En nuestra implementación, considerando que la cantidad de columnas de la zona reservada para shared memory no sea múltiplo de la cantidad de bancos, logramos una eficiencia de 66.6% (vs. 6.06% sin optimizar), es suficiente?
Muchas gracias,
Saludos.
En respuesta a Maximiliano Bove Pugliese
Re: Duda práctico 4 ejericico 1 parte c) iii)
de Ernesto Dufrechou -
Hola,
en el caso de tamaño de bloque 32x32 la optimización debería lograr shared_efficiency=100%.
Si no logran ese resultado al menos analicen el patrón de acceso a memoria (lectura y escritura) y determinen dónde se están dando los conflictos de bancos.
Saludos!
en el caso de tamaño de bloque 32x32 la optimización debería lograr shared_efficiency=100%.
Si no logran ese resultado al menos analicen el patrón de acceso a memoria (lectura y escritura) y determinen dónde se están dando los conflictos de bancos.
Saludos!