Medição de tempo
Freqüentemente precisamos medir o tempo de execução de um programa, especialmente quando queremos mostrar que um programa em GPU é mais rápido que um em CPU. A maioria das funções que a linguagem C oferece não servem a esse propósito, já que medem o tempo em segundos, e um programa para GPU raramente completa um segundo de execução. As bibliotecas CUDA oferecem um recurso simples para fazer essa medição, em unidades de milissegundos. Eis um exemplo de código:
# include <stdlib.h>
# include <stdio.h>
# include <cutil.h>
int main()
{
float tempo;
unsigned int timer = 0;
CUT_SAFE_CALL( cutCreateTimer( &timer));
CUT_SAFE_CALL( cutStartTimer( timer));
// Região de execução: aqui vai o trecho de código cujo
// tempo de execução queremos medir.
tempo = CUT_SAFE_CALL( cutGetTimerValue(timer));
printf(“A execução durou %5.3f milissegundos\n”, tempo);
CUT_SAFE_CALL(cutDeleteTimer(timer));
}
Parte ou todo esse roteiro não funcionou pra você? Deixe comentário!