Как измерить производительность графического процессора и процессора? Какие функции измерения времени?

Какие библиотеки или функции необходимо использовать для объективного сравнения производительности CPU и GPU? О каком предостережении следует предупредить ради точной оценки?

Я использую платформу Ubuntu с устройством, имеющим вычислительные возможности 2.1 и работающим с набором инструментов CUDA 5.


person erogol    schedule 27.04.2013    source источник
comment
получить время дня? Работает на меня.   -  person Alex    schedule 28.04.2013
comment
для определения времени активности cuda вас может заинтересовать это Вы должны быть в состоянии найти множество ссылок на синхронизацию кода только для ЦП.   -  person Robert Crovella    schedule 28.04.2013
comment
@windfinder работает для измерения процессора, но как насчет измерения графического процессора?   -  person erogol    schedule 28.04.2013
comment
Для измерения GPU вы можете попробовать nvprof: ссылка.   -  person Yu Zhou    schedule 29.04.2013


Ответы (1)


я использую следующее

CPU — возвращает микросекунды между tic и toc с разрешением 2 микросекунды.

#include <sys/time.h>
#include <time.h>

struct timespec  init;
struct timespec  after;

void tic() { clock_gettime(CLOCK_MONOTONIC,&init); }

double toc() {
    clock_gettime(CLOCK_MONOTONIC,&after);
    double us = (after.tv_sec-init.tv_sec)*1000000.0f;
    return us+(after.tv_nsec- init.tv_nsec)/1000.0f;
}

Графический процессор

float time;
cudaEvent_t start, stop;
cudaEventCreate(&start);
cudaEventCreate(&stop);
cudaEventRecord(start, 0);

// Instructions

cudaEventRecord(stop, 0);
cudaEventSynchronize(stop);
cudaEventElapsedTime(&time, start, stop);
cout << setprecision (10) << "GPU Time [ms] " << time << endl;

ИЗМЕНИТЬ

Более полный ответ см. в разделе Сроки операций CUDA.

person Vitality    schedule 28.04.2013