13#include <mach/clock.h> 
   17#include "util/cuda_util.hpp" 
   39    struct timespec tsstop;
 
   44#if defined(__NVCC__) && !defined(CUDA_ON_CPU) 
   46        hipEvent_t start_g, stop_g;
 
   48        cudaEvent_t start_g, stop_g;
 
   55#if defined(SYNC_BEFORE_TAKE_TIME) && defined(__NVCC__) 
   57        hipDeviceSynchronize();
 
   59        cudaDeviceSynchronize();
 
   66        host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
 
   67        clock_get_time(cclock, &mts);
 
   68        mach_port_deallocate(mach_task_self(), cclock);
 
   69        tsstop.tv_sec = mts.tv_sec;
 
   70        tsstop.tv_nsec = mts.tv_nsec;
 
   72        clock_gettime(CLOCK_REALTIME, &tsstop);
 
   95#if defined(SYNC_BEFORE_TAKE_TIME) && defined(__NVCC__)  
   96        cudaDeviceSynchronize();
 
  102        host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
 
  103        clock_get_time(cclock, &mts);
 
  104        mach_port_deallocate(mach_task_self(), cclock);
 
  108        clock_gettime(CLOCK_REALTIME, &
tsstart);
 
  135        return ((
double)(tsstop.tv_sec - 
tsstart.tv_sec)) + ((1e-9) * ((
double)(tsstop.tv_nsec - 
tsstart.tv_nsec)));
 
  147        return (((
double)(
cstop - 
cstart)) / CLOCKS_PER_SEC);
 
  160    #if defined(__NVCC__) && !defined(CUDA_ON_CPU) 
  165        hipEventCreate(&start_g);
 
  166        hipEventRecord(start_g,0);
 
  168        cudaEventCreate(&start_g);
 
  169        cudaEventRecord(start_g,0);
 
  176        hipEventCreate(&stop_g);
 
  177        hipEventRecord(stop_g,0);
 
  178        hipEventSynchronize(stop_g);
 
  180        cudaEventCreate(&stop_g);
 
  181        cudaEventRecord(stop_g,0);
 
  182        cudaEventSynchronize(stop_g);
 
  191        hipEventElapsedTime(&elapsedTime, start_g,stop_g);
 
  193        cudaEventElapsedTime(&elapsedTime, start_g,stop_g);
 
Class for cpu time benchmarking.
 
bool running
Flag that indicate if the timer is running or not.
 
clock_t cstart
start time from epoch
 
void stop()
Stop the timer.
 
double getcputime()
Return the cpu time.
 
void reset()
Reset the timer.
 
clock_t cstop
stop time from epoch
 
void start()
Start the timer.
 
double getwct()
Return the elapsed real time.
 
timer()
Default constructor.
 
struct timespec tsstart
starting time