diff options
author | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-01-28 21:08:07 -0800 |
---|---|---|
committer | Benoit Steiner <benoit.steiner.goog@gmail.com> | 2016-01-28 21:08:07 -0800 |
commit | e4f83bae5df854319f917fb15ee781f4b960e77c (patch) | |
tree | 22c163ae10520c1972b5fc0a17b3f575eef8b6a8 /bench/tensors/benchmark_main.cc | |
parent | 10bea90c4add286b8d10473ba272660ef4210083 (diff) |
Fixed the tensor benchmarks on apple devices
Diffstat (limited to 'bench/tensors/benchmark_main.cc')
-rw-r--r-- | bench/tensors/benchmark_main.cc | 15 |
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); |