float Timer::MicroSeconds() { if (!has_run_at_least_once()) { LOG(WARNING)<< "Timer has never been run before reading time."; return 0; } if (running()) { Stop(); } if (Caffe::mode() == Caffe::GPU && Caffe::GetDefaultDevice()->backend() == BACKEND_CUDA) { #ifndef CPU_ONLY #ifdef USE_CUDA CUDA_CHECK(cudaEventElapsedTime(&elapsed_milliseconds_, start_gpu_, stop_gpu_)); // Cuda only measure milliseconds elapsed_microseconds_ = elapsed_milliseconds_ * 1000; #endif // USE_CUDA #else NO_GPU; #endif } else { elapsed_microseconds_ = (stop_cpu_ - start_cpu_).total_microseconds(); } return elapsed_microseconds_; }
float CPUTimer::MicroSeconds() { if (!has_run_at_least_once()) { LOG(WARNING) << "Timer has never been run before reading time."; return 0; } if (running()) { Stop(); } this->elapsed_microseconds_ = (this->stop_cpu_ - this->start_cpu_).total_microseconds(); return this->elapsed_microseconds_; }
float Timer::MilliSeconds() { if (!has_run_at_least_once()) { LOG(WARNING) << "Timer has never been run before reading time."; return 0; } if (running()) { Stop(); } if (Caffe::mode() == Caffe::GPU) { CUDA_CHECK(cudaEventElapsedTime(&elapsed_milliseconds_, start_gpu_, stop_gpu_)); } else { elapsed_milliseconds_ = (stop_cpu_ - start_cpu_).total_milliseconds(); } return elapsed_milliseconds_; }
float Timer::MicroSeconds() { if (!has_run_at_least_once()) { LOG(WARNING)<< "Timer has never been run before reading time."; return 0; } if (running()) { Stop(); } #ifdef USE_CUDA if (Caffe::mode() == Caffe::GPU) { CUDA_CHECK(cudaEventElapsedTime(&elapsed_milliseconds_, start_gpu_, stop_gpu_)); // Cuda only measure milliseconds elapsed_microseconds_ = elapsed_milliseconds_ * 1000; } else { #endif elapsed_microseconds_ = (stop_cpu_ - start_cpu_).total_microseconds(); #ifdef USE_CUDA } #endif return elapsed_microseconds_; }