diff --git a/JikanDepths.cpp b/JikanDepths.cpp index 6a171fa1932ed4f98bb6cba8d57e76f917e6fecb..8bcec74c9371517d1c14eb6324b86cf860657d0b 100644 --- a/JikanDepths.cpp +++ b/JikanDepths.cpp @@ -90,7 +90,7 @@ void Jikan::Jikan_start(const string& name, const int& mode) (this->Events)[name].ifStart = true; } - #pragma omp barrier + // #pragma omp barrier if(!ExistFlag) { @@ -100,13 +100,13 @@ void Jikan::Jikan_start(const string& name, const int& mode) (this->Events)[name].GetModeVals(mode); } } - else - { - bool ifStart = (this->Events)[name].ifStart; + // else + // { + // bool ifStart = (this->Events)[name].ifStart; - if(!ifStart) - return; - } + // if(!ifStart) + // return; + // } #pragma omp barrier ifMPI = (this->Events)[name].mode[0], ifOpenMP = (this->Events)[name].mode[1]; @@ -140,7 +140,7 @@ void Jikan::Jikan_start(const string& name, const int& mode) #pragma omp master { - this->StartEventTimer(name); + this->StartEvent(name); } } @@ -163,6 +163,7 @@ void Jikan::Jikan_end(const string& name) { #ifdef INCLUDE_GPU_TIMER this->cuda_Jikan_end(name); + this->cuda_get_time(name); #endif } } @@ -182,7 +183,7 @@ void Jikan::Jikan_end(const string& name) (this->Events)[name].ifStart = false; - this->EndEventTimer(name); + this->EndEvent(name); } //--------------------------------------------------------------------------------------- } @@ -254,7 +255,7 @@ void Jikan::SetDumpFilename(const string& name) this->JSONname = name; } -void Jikan::StartEventTimer(const string& name) +void Jikan::StartEvent(const string& name) { bool ifMPI = (this->Events)[name].mode[0], ifOpenMP = (this->Events)[name].mode[1], ifCUDA = (this->Events)[name].mode[2]; @@ -274,14 +275,14 @@ void Jikan::StartEventTimer(const string& name) (this->Events)[name].start = chrono::steady_clock::now(); } -void Jikan::EndEventTimer(const string& name) +void Jikan::EndEvent(const string& name) { bool ifMPI = (this->Events)[name].mode[0], ifOpenMP = (this->Events)[name].mode[1], ifCUDA = (this->Events)[name].mode[2]; if((ifCUDA)) { #ifdef INCLUDE_GPU_TIMER - this->cuda_Jikan_start(name); + this->cuda_Jikan_end(name); #endif } diff --git a/JikanDepths.cu b/JikanDepths.cu index 6da4fbb6b5d7e055a166079781dc42f430094b53..094a342815105723896bcc95d74ee9f27fe00de8 100644 --- a/JikanDepths.cu +++ b/JikanDepths.cu @@ -18,19 +18,17 @@ void Jikan::cuda_Jikan_end(const string& name) { cudaEventRecord((this->Events)[name].gpu_end); cudaEventSynchronize((this->Events)[name].gpu_end); +} - bool ifMPI = (this->Events)[name].mode[0], ifOpenMP = (this->Events)[name].mode[1], ifCUDA = (this->Events)[name].mode[2]; - - if((ifCUDA) && (!ifMPI) && (!ifOpenMP)) - { - 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 ++; +void Jikan::cuda_get_time(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 - } + #ifdef SAVE_TIME_SERIES + (this->Events)[name].time_series.push_back(GPUtime); + #endif } \ No newline at end of file diff --git a/JikanDepths.h b/JikanDepths.h index 3395fe9900525a827ca1d9843f9a1fbe95d6c387..85c99a5c813266e8e955e11eeb2dfa0b4fa4525c 100644 --- a/JikanDepths.h +++ b/JikanDepths.h @@ -48,6 +48,10 @@ public: private: void StartTimer(const std::string& name); void BarrierMPI(); - void StartEventTimer(const std::string& name); - void EndEventTimer(const std::string& name); + void StartEvent(const std::string& name); + void EndEvent(const std::string& name); + +#ifdef INCLUDE_GPU_TIMER + void cuda_get_time(const string& name); +#endif }; \ No newline at end of file