Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CUDA
Semana 16
Los eventos CUDA hacen uso del concepto de
flujos CUDA.
Un flujo CUDA es una secuencia de operaciones
que se realizan en orden en el dispositivo
Las operaciones en diferentes flujos pueden:
Intercalarse
RESUMEN Superponerse - ocultar transferencias de datos
entre el host y el dispositivo
EVENTOS
GPU ¿Dónde?
Consisten en marcas de
tiempo en la GPU que
puede grabar en un
Medir t
determinado instante de ejecución
¿Por qué?
tiempo. de un
kernel
Evitar
problemas
de
obtención
de t
Para medir un tiempo de ejecución:
1. Crear evento.
MANEJO DE
EVENTOS cudaEventCreate (cudaEvent_t *marca);
Eventos &
cudaEventRecord(cudaEvent_t marca, cudaStream_t stream);
Marcas
Marca Stream
Variables declaradas Corriente en la que se
anteriormente para grabará el evento.
almacenar las marcas Colocar 0 para incluir todas
temporales de inicio o fin. las corrientes.
3. Calcular tiempo transcurrido entre los dos eventos.
IMPORTANTE: añadir llamada adicional después del último
cudaEventRecord()
Sincroniza el host con el device
cudaEventSynchronize(cudaEvent_t marca);
Sincronización
Detiene la CPU hasta la finalización de todo el trabajo pendiente en la GPU y que
precede a la llamada más reciente a cudaEventRecord()