#include <sys/time.h> #include <cuda.h> #include <cuda_runtime.h> #include "JikanDepths.h" #ifdef INCLUDE_OPEN_MP #include "omp.h" #endif using namespace std; void Jikan::StartCUDASync(const string& name) { cudaEventRecord ((this->Events)[name].gpu_start); } void Jikan::EndCUDASync(const string& name) { cudaEventRecord((this->Events)[name].gpu_end); cudaEventSynchronize((this->Events)[name].gpu_end); } void Jikan::CUDAGetTime(const string& name) { float GPUtime = 0.0; cudaEventElapsedTime(&GPUtime, (this->Events)[name].gpu_start, (this->Events)[name].gpu_end ); GPUtime *= 1e-3; (this->Events)[name].elapsed_time += GPUtime; (this->Events)[name].count ++; #ifdef SAVE_TIME_SERIES (this->Events)[name].time_series.push_back(GPUtime); #endif }