diff options
author | Sergio <sguada@gmail.com> | 2014-10-12 23:16:59 -0700 |
---|---|---|
committer | Sergio <sguada@gmail.com> | 2014-10-15 17:03:18 -0700 |
commit | 8867a54599f1d35b36bb29ee6fea94d6f635d675 (patch) | |
tree | 8e2a9916d42ca9d2ffc632340599bf13d20aebae /tools | |
parent | 65688bed17b3bc162fd5a0db9c97de11c9131258 (diff) | |
download | caffeonacl-8867a54599f1d35b36bb29ee6fea94d6f635d675.tar.gz caffeonacl-8867a54599f1d35b36bb29ee6fea94d6f635d675.tar.bz2 caffeonacl-8867a54599f1d35b36bb29ee6fea94d6f635d675.zip |
Added CPUTimer
Make timing more precise using double and microseconds
Diffstat (limited to 'tools')
-rw-r--r-- | tools/caffe.cpp | 39 | ||||
-rw-r--r-- | tools/compute_image_mean.cpp | 2 |
2 files changed, 24 insertions, 17 deletions
diff --git a/tools/caffe.cpp b/tools/caffe.cpp index 1c842a07..9f9d975d 100644 --- a/tools/caffe.cpp +++ b/tools/caffe.cpp @@ -231,10 +231,10 @@ int time() { Timer forward_timer; Timer backward_timer; Timer timer; - std::vector<float> forward_time_per_layer(layers.size(), 0.0); - std::vector<float> backward_time_per_layer(layers.size(), 0.0); - float forward_time = 0.0; - float backward_time = 0.0; + std::vector<double> forward_time_per_layer(layers.size(), 0.0); + std::vector<double> backward_time_per_layer(layers.size(), 0.0); + double forward_time = 0.0; + double backward_time = 0.0; for (int j = 0; j < FLAGS_iterations; ++j) { Timer iter_timer; iter_timer.Start(); @@ -245,33 +245,38 @@ int time() { // so that we will notice Reshape performance bugs. layers[i]->Reshape(bottom_vecs[i], top_vecs[i]); layers[i]->Forward(bottom_vecs[i], top_vecs[i]); - forward_time_per_layer[i] += timer.MilliSeconds(); + forward_time_per_layer[i] += timer.MicroSeconds(); } - forward_time += forward_timer.MilliSeconds(); + forward_time += forward_timer.MicroSeconds(); backward_timer.Start(); for (int i = layers.size() - 1; i >= 0; --i) { timer.Start(); layers[i]->Backward(top_vecs[i], bottom_need_backward[i], bottom_vecs[i]); - backward_time_per_layer[i] += timer.MilliSeconds(); + backward_time_per_layer[i] += timer.MicroSeconds(); } - backward_time += backward_timer.MilliSeconds(); + backward_time += backward_timer.MicroSeconds(); LOG(INFO) << "Iteration: " << j + 1 << " forward-backward time: " - << iter_timer.MilliSeconds() << " milliseconds."; + << iter_timer.MilliSeconds() << " ms."; } + LOG(INFO) << "Average time per layer: "; for (int i = 0; i < layers.size(); ++i) { const caffe::string& layername = layers[i]->layer_param().name(); LOG(INFO) << std::setfill(' ') << std::setw(10) << layername << - "\tforward: " << forward_time_per_layer[i] << " milliseconds."; + "\tforward: " << forward_time_per_layer[i] / 1000 / + FLAGS_iterations << " ms."; LOG(INFO) << std::setfill(' ') << std::setw(10) << layername << - "\tbackward: " << backward_time_per_layer[i] << " milliseconds."; + "\tbackward: " << backward_time_per_layer[i] / 1000 / + FLAGS_iterations << " ms."; } - LOG(INFO) << "Forward pass: " << forward_time << - " milliseconds."; - LOG(INFO) << "Backward pass: " << backward_time << - " milliseconds."; - LOG(INFO) << "Total Time: " << total_timer.MilliSeconds() << - " milliseconds."; + total_timer.Stop(); + LOG(INFO) << "Average Forward pass: " << forward_time / 1000 / + FLAGS_iterations << " ms."; + LOG(INFO) << "Average Backward pass: " << backward_time / 1000 / + FLAGS_iterations << " ms."; + LOG(INFO) << "Average Forward-Backward: " << total_timer.MilliSeconds() / + FLAGS_iterations << " ms."; + LOG(INFO) << "Total Time: " << total_timer.MilliSeconds() << " ms."; LOG(INFO) << "*** Benchmark ends ***"; return 0; } diff --git a/tools/compute_image_mean.cpp b/tools/compute_image_mean.cpp index 4c2c658b..358f57e3 100644 --- a/tools/compute_image_mean.cpp +++ b/tools/compute_image_mean.cpp @@ -4,6 +4,8 @@ #include <algorithm> #include <string> +#include <utility> +#include <vector> #include "caffe/dataset_factory.hpp" #include "caffe/proto/caffe.pb.h" |