¿Cuál es la diferencia entre usar un temporizador de CPU y el evento de temporizador CUDA para medir el tiempo necesario para la ejecución de algún código CUDA? ¿Cuál de estos debería usar un programador de CUDA y por qué?CUDA: ¿diferencia entre el temporizador de la CPU y el evento del temporizador CUDA?
El uso del temporizador de CPU implicaría llamar al cudaThreadSynchronize
antes de anotar cualquier momento. Para saber el tiempo clock()
se puede utilizar o se puede consultar el contador de rendimiento de alta resolución como QueryPerformanceCounter
(en Windows).
El evento del temporizador CUDA implicaría registrar antes y después utilizando cudaEventRecord
. En un momento posterior, el tiempo transcurrido se obtendría llamando al cudaEventSynchronize
en los eventos, seguido de cudaEventElapsedTime
para obtener el tiempo transcurrido.
¿Comenzó a escribir una pregunta y a terminar de escribir otra? No entiendo cómo el último párrafo encaja con el resto de la pregunta. ¿Qué es lo que realmente quieres saber? ¿Está intentando conciliar la salida de las mediciones del temporizador del host y del dispositivo y no puede, o algo más? – talonmies
Talonmies: he eliminado el último párrafo. Entonces la pregunta simplemente es ... como programador, estoy confundido, ¿cuál de estos 2 temporizadores usar y por qué? –