aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/tensors
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-01-28 21:08:07 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-01-28 21:08:07 -0800
commite4f83bae5df854319f917fb15ee781f4b960e77c (patch)
tree22c163ae10520c1972b5fc0a17b3f575eef8b6a8 /bench/tensors
parent10bea90c4add286b8d10473ba272660ef4210083 (diff)
Fixed the tensor benchmarks on apple devices
Diffstat (limited to 'bench/tensors')
-rw-r--r--bench/tensors/benchmark_main.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/bench/tensors/benchmark_main.cc b/bench/tensors/benchmark_main.cc
index 65dbd89bb..1efa0dbad 100644
--- a/bench/tensors/benchmark_main.cc
+++ b/bench/tensors/benchmark_main.cc
@@ -49,12 +49,27 @@ static int Round(int n) {
}
return 10*base;
}
+
+#ifdef __APPLE__
+ #include <mach/mach_time.h>
+ static mach_timebase_info_data_t g_time_info;
+ static void __attribute__((constructor)) init_info() {
+ mach_timebase_info(&g_time_info);
+ }
+#endif
+
static int64_t NanoTime() {
+#if defined(__APPLE__)
+ uint64_t t = mach_absolute_time();
+ return t * g_time_info.numer / g_time_info.denom;
+#else
struct timespec t;
t.tv_sec = t.tv_nsec = 0;
clock_gettime(CLOCK_MONOTONIC, &t);
return static_cast<int64_t>(t.tv_sec) * 1000000000LL + t.tv_nsec;
+#endif
}
+
namespace testing {
Benchmark* Benchmark::Arg(int arg) {
args_.push_back(arg);