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!

About these ads

2 Respostas para Medição de tempo

  1. Alexsander disse:

    Mas para medir e comparar os tempos de execução na CPU e na GPU, precisamos medir o tempo da MESMA forma, senão a comparação não é válida.
    Essa medição não pode ser baseado no tempo global do sistema, pois o sistema operacional pode escalonar outras tarefas durante a execução do seu kernel/programa, e medindo o tempo global, o tempo de execução destas outras tarefas será contabilizado no tempo de execução do seu kernel/programa, certo?
    Como vocês costumam resolver isto?
    Como vocês costumam medir o tempo na CPU?

  2. Se você deseja medir o tempo em CPU e GPU da mesma forma, então basta garantir a sincronização de threads após lançamento do kernel e medir normalmente com sua estratégia de métrica em CPU.

    Chamada cudaThreadSynchronize()

    Cuidado que isso pode gerar stall em GPU e conseguinte perda de desempenho.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d bloggers like this: