Skip to content
Snippets Groups Projects
JikanDepths.cu 1.09 KiB
Newer Older
  • Learn to ignore specific revisions
  • #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;
    
    
    数学の武士's avatar
    数学の武士 committed
    #ifdef INCLUDE_GPU_TIMER
        void Jikan::StartCUDASync(const string& name)
        {
        	cudaEventRecord ((this->Events)[name].gpu_start);
        }
    
    数学の武士's avatar
    数学の武士 committed
        void Jikan::EndCUDASync(const string& name)
        {
            cudaEventRecord((this->Events)[name].gpu_end);
        	cudaEventSynchronize((this->Events)[name].gpu_end);
        }
    
    数学の武士's avatar
    数学の武士 committed
    void Jikan::CUDAGetTime(const string& name, const int cont_mode_t)
    
    数学の武士's avatar
    数学の武士 committed
    {
        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;
    
    数学の武士's avatar
    数学の武士 committed
        (this->Events)[name].ContiniousTime += GPUtime;
    
        if(cont_mode_t == 0)
        {
            (this->Events)[name].count ++;
        }
    
    数学の武士's avatar
    数学の武士 committed
        #ifdef SAVE_TIME_SERIES
    
    数学の武士's avatar
    数学の武士 committed
            if(cont_mode_t == 0)
            { 
                (this->Events)[name].time_series.push_back((this->Events)[name].ContiniousTime);
                (this->Events)[name].ContiniousTime = 0.0;
            }
    
    数学の武士's avatar
    数学の武士 committed
        #endif