You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Al crear la imagen en las funciones kernel de CUDA, es mejor tenerlo ya declarado en la función que lo llama, así las hebras comparten la misma imagen en lugar de crear todas una imagen completa.
A parte, crear punteros a punteros (**) da problemas en CUDA (probablemente también en C++), así que habrá que crear punteros de una sola dimensión y acceder a los datos mediante [row_index * width + column_index].
The text was updated successfully, but these errors were encountered:
El valor de los punteros no se pasan a las funciones de kernel de CUDA correctamente, quitando el (void **) de las funciones de cudaMalloc se pasa un valor, pero no el correcto, con el (void **) no se pasa nada.
Había dos problemas.
El primero era que no se estaba usando correctamente la función de cudaMalloc, al pasar la variable que queremos reservar en GPU, hay que ponerle el & para que se pase por referencia, por esto no se guardaba bien el valor del tamaño.
El segundo era que no se realizaban los cálculos correctos en las funciones kernel. Se estaba calculando la imagen entera cuando solo había que calcular el pixel correspondiente a id.
Aparte, había un problema con la función de color a escala de grises en la CPU, estaba guardando el resultado en original por referencia y daba violación del segmento en algunas imágenes, para arreglarlo se vuelve al modo que se hacía en secuencial y MPI, devolviendo el valor al final con return.
Al crear la imagen en las funciones kernel de CUDA, es mejor tenerlo ya declarado en la función que lo llama, así las hebras comparten la misma imagen en lugar de crear todas una imagen completa.
A parte, crear punteros a punteros (**) da problemas en CUDA (probablemente también en C++), así que habrá que crear punteros de una sola dimensión y acceder a los datos mediante
[row_index * width + column_index]
.The text was updated successfully, but these errors were encountered: